Pandas


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)

文章作者: fdChen
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fdChen !
评论
  目录
加载中...