1、读取数据出现UTF-8
错误
encoding="gbk"
2、进行时间系列的平均,并将平均后的数据转化为时间格式
data.index = pd.to_datetime(data.index)
data = data.groupby(data.index.to_period('H')).mean()
data.index = data.index.to_timestamp()
df['hour'] = df.index.hour #提取时间中的小时
df.query('hour >= 9 and hour <= 12') # 选择小时范围在9到12小时内的数据
3、将不同的datafram合并
pd.concat([df1,df2,df3],axis = 1)
#axis=1按列,axis=0按行
4、补全时间
t_index = pd.date_range('2022-02-01 00:00:00', '2022-02-28 23:55:00', freq='5T')
df.index = pd.to_datetime(df.index, format='%Y-%m-%d %H:%M:%S')
df = df.reindex(t_index)
5、删除缺失值
data.dropna(axis=0,how='all') #只删除行中所有为Nan值的行
data.dropna(axis=0,how='any') # 删除行中有含有任何NaN的行
# axis控制行(0)和列(1)
6、挑选奇数列或者偶数列
#保留奇数行,删除偶数行
df=df.iloc[:,[i%2==0 for i in range(len(df.columns))]]
#保留偶数行,删除奇数行
df=df.iloc[:,[i%2==1 for i in range(len(df.columns))]]
7、挑选奇数行或者偶数行
#生成列表实现筛选,保留奇数行,删除偶数行
df=df[[i%2==0 for i in range(len(df.index))]]
#保留偶数行,删除奇数行
df=df[[i%2==1 for i in range(len(df.index))]]
#index是数字时
#保留奇数行,删除偶数行
df=df[df.index%2==0]
# 保留偶数行,删除奇数行
df=df[df.index%2==1]
8、Groupby
df = pd.read_csv('../data.csv',index_col=0)
df.index = pd.to_datetime(df.index)
df['hour'] = df.index.hour
df['miu'] = df.index.minute
data1 = df.groupby(['hour','miu']).agg('mean').reset_index()
# reset_index() 重置index好进行挑选
mius = [0,10,20,30,40,50]
data1 = data1[data1['miu'].isin(mius)]
data1['time'] = pd.to_datetime(data1['hour'].astype(str) + ':' + data1['miu'].astype(str), format='%H:%M').dt.strftime('%H:%M')
# data1['time'] = data1['time'].dt.strftime('%H:%M') # 只保留小时和分钟
data1 = data1.drop(['hour', 'miu'], axis=1)
data1.set_index('time', inplace=True)
9、去除重复的index
df_gk = df_gk[~df_gk.index.duplicated()]