gpt4 book ai didi

python pandas 过滤并聚合多列并写入CSV

转载 作者:行者123 更新时间:2023-11-30 22:34:15 27 4
gpt4 key购买 nike

我想读取 CSV 文件并对多列进行计数/聚合

我的输入数据如下

unique_identifier,date,flag1,flag2,flag3
a1,7/1/2017,FALSE,TRUE,FALSE
a2,7/1/2017,FALSE,TRUE,FALSE
a3,7/1/2017,FALSE,TRUE,FALSE
a4,7/1/2017,TRUE,FALSE,FALSE
a5,7/1/2017,FALSE,FALSE,FALSE
a6,7/2/2017,FALSE,FALSE,TRUE
a7,7/2/2017,FALSE,FALSE,TRUE
a8,7/2/2017,FALSE,TRUE,FALSE
q9,7/2/2017,FALSE,TRUE,TRUE

我是 pandas 新手,到目前为止,通过阅读这里的各种问题,我看起来需要使用 set_index()、.append()、.join()、.agg() 中的一个或多个

我有单独的结果,但无法获得我想要的新结果。

import pandas as pd

df = pd.read_csv("flagdata.csv")

print (df["date"].value_counts())


df_flag1 = df[df.flag1 == True]
df_flag1 = df_flag1["date"].value_counts()
print (df_flag1)

df_flag2 = df[df.flag2 == True]
df_flag2 = df_flag2["date"].value_counts()
print (df_flag2)


df_flag3 = df[df.flag3 == True]
df_flag3 = df_flag3["date"].value_counts()
print (df_flag3)

我想获取每个日期的真实标志计数,以创建一个新的 csv 文件,其结果如下 - 日期、总计数、flag1 真实计数、flag2 真实计数、flag3 真实计数

date,count,flag1,flag2,flag3
7/1/2017,5,1,3,0
7/2/2017,4,0,2,3

最佳答案

您需要按日期对行进行分组并对标志进行计数和求和:

result = pd.concat([df.groupby('date').count()['flag1'],
df.groupby('date').sum()],
axis=1).astype(int)
result.columns = ['count'] + result.columns[1:].tolist()
# count flag1 flag2 flag3
#date
#7/1/2017 5 1 3 0
#7/2/2017 4 0 2 3

result.to_csv('output.csv')

关于python pandas 过滤并聚合多列并写入CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44894738/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com