python - pandas for 循环导出文件包含所有条件

标签 python pandas

import pandas as pd
from io import StringIO

mystr = StringIO("""beat,crimedescr
A,10851(A)VC TAKE VEH W/O OWNER
B,459 PC  BURGLARY RESIDENCE
C,10851(A)VC TAKE VEH W/O OWNER
A,476 PC PASS FICTICIOUS CHECK
B,459 PC  BURGLARY-UNSPECIFIED
C,530.5 PC USE PERSONAL ID INFO""")

df = pd.read_csv(mystr, header=0)

for i in df.beat.unique():
    df.loc[df.beat==i].to_csv(f'{i}.csv', index=False)

我想从此数据框中导出 4 个 csv 文件,包括: 包含整个数据帧和 3 个独立文件(A、B、C)的文件。 我知道可以简单地 df.to_csv 并添加另一个 for 循环。 由于大多数情况下 df.loc[()&()..] 中的条件非常复杂,因此如何在严格的一个 for 循环中执行此操作,其中分离的导出使代码很难阅读?

最佳答案

试试这个,

for u, v in df.groupby('beat'):
    v.to_csv(u+'.csv',index=False)
df.to_csv('all.csv',index=False)

编辑1:对于单个循环

flag=True
for u, v in df.groupby('beat'):
    if flag:
        df.to_csv('all.csv',index=False)
        flag=False
    v.to_csv(u+'.csv',index=False)

关于python - pandas for 循环导出文件包含所有条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55255481/

相关文章:

python - 获取 DuplicateKeyError 的重复值

python - Tkinter:为什么一个框架会覆盖另一个框架?

python - pandas 在两行索引之间填充值(行仅通过值查找)

python - 如何从Python字典中的多个数据框中过滤出行

python - 如果 pandas merge 找到多个匹配项,则将值行写入一个字段

python - 如何制作编码语言?

python - ">"无法将 python 命令的输出定向到文件

python - Python 结构的内存大小

python - Pandas - 使用模式/正则表达式编辑索引

python - 评估 Pandas Dataframe 中相同列值的行/索引范围