pandas 常用操作
- 1.pandas列属性操作
- 2. pandas填充值
- 3. pandas重复值操作
- 4. pandas根据值排序
- 5. pandas列值操作
- 6. pandas日期操作
- 7. pandas 均线值
- 8. pandas 数据统计
1.pandas列属性操作
- 修改列名
data=data.rename(columns={'Dest Country':'country','Dest':'iata_code','index':'from'})
- 修改列索引名
data.rename_axis('index',inplace=True)
- 修改列属性数据类型
data['country']=data['country'].astype('int')
- 重新设置列索引范围
data.index = np.arange(1, len(data)+1)
- 重置列索引,重新排序
data=data.reset_index(drop=True)
- 去除不必要的列
data=data.drop(labels=['cmte_id','cand_id','file_num'],axis=1)
- 将某列值设置为列索引
people=pd.read_csv('./data/people.csv',header=0)# append是否将列追加到现有索引。
people.set_index('people_id',drop=True,append=False)
2. pandas填充值
data['ID']=data['ID'].fillna(method='ffill') #向后填充
data['ID']=data['ID'].fillna(method='bfill') #向前填充
3. pandas重复值操作
4. pandas根据值排序
data.sort_values(by='date',inplace=True,ascending=False) # inplace=True:将排序后的数据重新赋值给data# ascending=False,降序,默认升序# ignore_index=True重新排序
5. pandas列值操作
- 获取列不同值属性
data['country'].unique()
- 计算前后2值之差
data['price'].diff()
- 列值累加
data.cumsum() #默认按照列
- 计算前后2值之差变化率
data['price'].pct_change()
- 查找列值是否存在列表中
dat.loc[df['country'].isin(['中国','美国','英国','日本','巴西'])]
- 查找列值是否存在某个字符
data.loc[df['country'].str.contains('国')]
- 获取列不同值属性个数
data['country'].nunique()
- 获取列各个元素出现的次数
data['date'].value_counts()
- 将列值向下移动一位
data['shift']=data['id'].shift(1)
- 查看每列最大值的索引
data.iloc[:,:].idxmax()
6. pandas日期操作
- 字符串转为日期
data['date']=pd.to_datetime(data['date'],"%Y%m%d")
- 生成指定范围日期
pd.date_range('1/1/2021','9/11/2021',freq='D')
- 查看日期的星期,月份,天数,小时
data['week']=data['date'].dayofweek
data['month']=data['date'].month
data['day']=data['date'].day
data['hour']=data['date'].dt.hour
- 将日期列转为天数格式
data['date']=(data[‘date’]-np.datetime64('1970-01-01'))/np.timedelta64(1,'D')
- 获取每月的第一天数据
# 注意:data的列索引是日期
monthly = data.resample('M').first()#数据的重新取样
- 获取每年的最后一天数据
# 注意:data的列索引是日期
df_yearly = data.resample('A').last()
7. pandas 均线值
8. pandas 数据统计