一、提要
pandas对于处理表格类数据来说是非常方便的模块,同时也是做数据分析绕不开的第三方库。这里将工作中常用到的各种处理方法记录下来
二、常用方法
接下来的以 df 表示我们要处理的 dataframe 表格数据
1、取值
# 循环遍历取值
for i in range(len(df)):
yh_bm = df.iloc[i]['yh_bm']
cp_name = df.iloc[i]['cp_name']
可以通过循环将该表所有编码,名称全部依次取出
# 下面这两个写法效果相同,都是取第几行第几列的那个值
jz_date = df.iloc[i][num]
jz_date = df.iloc[i,num]
# 取行名为 合计,列名为 穿透前金额 的值
df = df[df.values == '合计']['穿透前金额'].values[0]
# 定位取值
cp_name = df.loc[df['yh_bm'] =='345634A', 'cp_name'].values[0]
print(cp_name)
意思是取 yh_bm 这一列中,值为 345634A 的这一行中 cp_name 的值。其中values是将所有符合条件的值都取出来,列表形式。values[0]即是取第一个符合条件的值。
2、切片
# 总行数
z_ls=df.shape[0]
# 总列数
con1 = df.shape[1]
# 获取前10行
con=df.loc[:10]
# 取所有行中第一到二列
data=df.iloc[:,1:2]
3、删除Pandas DataFrame中的某些字段
import pandas as pd
# 创建一个示例DataFrame
data = {
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]}
df = pd.DataFrame(data)
# 删除字段B和C
df = df.drop(['B', 'C'], axis=1)
# 打印结果
print(df)
A
0 1
1 2
2 3
4、获取索引
# 取出所有值为‘估值日’对应的索引行,列表形式展示
df = df[df.values == '估值日'].index.values.tolist()
5、判断并赋值
# 查询并赋值(如果id字段为'',产品状态赋值为新增)
df.loc[df['id'] == '', '产品状态'] = '新增'
# 如果id字段为'',产品状态赋值为新增,否则产品状态赋值为已存在。
df['产品状态'] = df.id.apply(lambda x: '新增' if x=='' else '已存在')
# 将 实际到期日<库内实际到期日 的各行数据,是否提前终止 字段值改为是
df.loc[df['实际到期日'] < df['库内实际到期日'], '是否提前终止'] = '是'
# 将 净值日期大于等于2022/8/24并且beizhu字段值为1的数据, 净值分配类型 字段值改为 扣除超额收益
df.loc[(df['净值日期'] >= datetime.datetime(2022, 8, 24)) & (df['beizhu'] == '1'), '净值分配类型'] = '扣除超额收益'
6、取某字段内包含某字段值的数据