1 DataFrame
1.1 修改某一列数据
df['col'] = df['col'].map(lambda x: x**2)
1.2 比较两列是否相等
df = pd.concat([df1, df2], axis=1)
df['result'] = np.where(df['col1'] == df['col2'], 'no change', 'changed')
print (df)
col1 col2 result
0 audi audi no change
1 cars bike changed
1.3 按某列条件检索行数据
lc.loc[lc["grade"] == "B"]
1.4 检查某列是否存在
if 'A' in df.columns
1.5 索引与列互相转化
- 列 –> 索引
df.set_index('date', inplace=True) # column 改为 index
- 索引 –> 列
df['index'] = df.index
1.6 修改列顺序
# 0代表插入位置,'id'代表列名,df_id代表列数据
df.insert(0,'id',df_id)
1.7 采样随机样本
DataFrame.sample( n = None , frac = None , replace = False , weights = None , random_state = None , axis = None , ignore_index = False )
# 从目标轴采样随机样本
1.8 loc按照名称选取,iloc按照索引选取
1.9 条件筛选,df.query(‘A > B’) 或 df[df.A > df.B]
多条件筛选,采用逻辑运算符,如下所示
df[(df.c1==1) & (df.c2==1)]
1.10 设置index的列名
df.index.name = name
1.11 去除重复项,drop_duplicates(subset=None, keep=’first’, inplace=False)
- 参数说明
subset : column label or sequence of labels, optional
用来指定特定的列,默认所有列
keep : {‘first’, ‘last’, False}, default ‘first’
删除重复项并保留第一次出现的项
inplace : boolean, default False
是直接在原来数据上修改还是保留一个副本
1.12 修改列数据类型
df[[column]] = df[[column]].astype(type)
1.13 修改列名
- 修改所有列名
df.columns = ['A','B']
- 修改部分列名
df.rename(columns={'a':'A'})
2 操作csv文件
2.1 读取csv
df = pd.read_csv('data_df.csv')
2.2 index_col设置行索引
data = pd.read_csv('1.csv', index_col=False) # 自动添加行index
# 如果CSV文件中没有行索引,必须设置为False,否则会将第一列设置为索引,导致第一二列数据合并
2.2 写入csv
#index表示设定是否需要行索引,设定为FALSE表明不需要,就不会生成新的行索引
#header表明是否需要列索引,设定为True(默认设置)表明需要,那么之前df的列标签就会保存。
data_df.to_csv('data_df.csv',index=False,header=True)