时常会遇到Pandas DataFrame 一点点操作技巧,持续记录,包括但不限于:
- Pandas DataFrame 判断是否为空
- Pandas DataFrame 过滤满足条件的列,然后重置索引
- Pandas DataFrame 删除满足条件的行,然后重置索引
- Pandas DataFrame 合并不固定数量的 DF
- Pandas DataFrame 按行遍历
- Pandas DataFrame 分组的组数
- Pandas 读中文excel
- Pandas 写中文excel
ailx10
网络安全优秀回答者
网络安全硕士
去咨询
Pandas DataFrame 判断是否为空
if not df.empty:
# DataFrame 不为空的处理逻辑
else:
# DataFrame 为空的处理逻辑
Pandas DataFrame 过滤满足条件的列,然后重置索引
df1 = df[df["A"] == 1].reset_index(drop=True)
df2 = df[(df["A"] == 1) & (df["B"] == 2)].reset_index(drop=True)
Pandas DataFrame 删除满足条件的行,然后重置索引
df1 = df.drop(df[df["A"] == 1].index).reset_index(drop=True)
df2 = df.drop(df[(df["A"] == 1) & (df["B"].str.contains("aaa|bbb"))].index).reset_index(drop=True)
Pandas DataFrame 合并不固定数量的 DF
df_all = pd.DataFrame(columns=["A","B","C"])
for i in list:
# 构建 df_tmp,列和df_all相同
df_all = df_all.append(df_tmp,ignore_index=True)
Pandas DataFrame 按行遍历
for index,row in df.iterrows():
A = row["A"] # 取每一行A列的值
B = row["B"] # 取每一行B列的值
Pandas DataFrame 分组的组数
# df 按照A列的值进行分组,得到多少组数据
gf_num = df.groupby("A").ngroups
Pandas 读中文excel
df = pd.read_excel('data.xlsx')
df = pd.read_excel('data.xlsx', engine='openpyxl')
Pandas 写中文excel
df.to_excel('输出文件.xlsx', index=False, encoding='utf-8-sig')