1.创建DataFrame
import numpy as np
import pandas as pd
data = {"姓名":["张三","小明","李强","汪小小","李四","王麻子","余总","肖强"],
"score":[85,90,70,67,68,np.nan,100,86]}
data=pd.DataFrame(data)
print(data)
2.数据提取
提取姓名为余总的行
result=data[data['姓名'].str.contains("余总")]
print(result)
3.提取列名
print(data.columns)
4.修改列名
修改第二列名字
data.rename(columns={'score':'分数'}, inplace = True)
5.缺失值处理
前向插值
data['score'] = data['score'].fillna(data['score'].interpolate())
ng)
6.数据提取
print(data[data['score']>90])
7.数据求重
data.drop_duplicates(['姓名'])
8.数据计算
求平均值
data['score'].mean()
9。数据范围提取
c=data[(data['score']>70) & (data['score']<90)]
print(c)
ng)
9.数据查看
data.head()#查看前5行
data.tail()#查看后5行
10.数据整理排序
c=data.sort_values('score')
print(c)
11.数据拼接
pd.concat([df1, df2],axis=1)
12.数据计算
c=data[['score']].apply(lambda x: x.max() - x.min())
print(c)
12:时间数据特征构造
数据为其他数据,非上文数据,就不展示啦
localminute为数据的时间列
use_data.loc[:, 'localminute'] = pd.to_datetime(use_data['localminute'],format='%Y-%m-%dT%H:%M:%S')
# 几时
use_data.loc[:, 'hour'] = use_data['localminute'].apply(lambda x: x.hour)
# 几号
use_data.loc[:, 'dom'] = use_data['localminute'].apply(lambda x: x.day)
# 几月
use_data.loc[:, 'month'] = use_data['localminute'].apply(lambda x: x.month)
13.新列添加方法1:
```python
use_data['State']=''
use_data.loc[use_data['refrigerator']==0,'State']=0
use_data.loc[use_data['refrigerator']>0,'State']=1
use_data.loc[use_data['refrigerator']>0.07,'State']=2
14.新列添加方法2
use_data.loc[:,'State']=use_data['furnace1'].apply(lambda x: 0 if x<=0.1 else 1)#
15.某一列向下平移 并去掉平移后的空值
data['use1']=data.groupby('dataid')['use'].shift(1)
data['use2']=data.groupby('dataid')['use'].shift(2)
data['use3']=data.groupby('dataid')['use'].shift(3)#平移
data['use1差值']=data.groupby('dataid')['use'].diff(1)#差值
data['use2差值']=data.groupby('dataid')['use'].diff(2)
data['use3差值']=data.groupby('dataid')['use'].diff(3)
data= data.dropna()#去均值
15 修改列名:
#df=traindf1[['timestamp','value']]#原始列名
df = df.rename(columns={'timestamp':'时间'})#修改列名代码
16 按条件删除行
df = df.drop(df[<some boolean condition>].index)
#index 行
例子:
df_clear = df.drop(df[df['x']<0.01].index)
# 也可以使用多个条件
df_clear = df.drop(df[(df['x']<0.01) | (df['x']>10)].index) #删除x小于0.01或大于10的行