我有3个包含ID和activeUsers列的csv文件。这些文件中的ID有时只存在于一个文件中,两个文件中,但有时它们可以存在于每个文件中。我的ID在每个文件中都是唯一的
每个csv文件格式:
id activeUsers
470c-9930-4495c5 4
... ...
我需要在pandas中建立逻辑,以帮助我获得以下信息:
新数据帧中的所需结果:
id IDoccurenceInFiles SumOfActiveUsers True/False
470c-9930-4495c5 2 4 FALSE
123a-8870-1234a3 3 0 TRUE
到目前为止,我的代码是:
import pandas as pd
#3 monthly files
df1 = pd.read_csv('09-2020.csv', sep = ',')
df2 = pd.read_csv('10-2020.csv', sep = ',')
df3 = pd.read_csv('11-2020.csv', sep = ',')
#rename columns in each file
df1.columns = ['id','activeUsers']
df2.columns = ['id','activeUsers']
df3.columns = ['id','activeUsers']
#create dataframe to capture results
df4=pd.DataFrame()
#calculate 'IDoccurenceInFiles' to see if a particular ID would be present 1, 2 or 3 times
df4['IDoccurenceInFiles']=df3.groupby('id')['id'].map(df2['id'].value_counts(),df1['id'].value_counts())
#calculate 'SumOfActiveUsers' across 3 files
df4['SumOfActiveUsers']=
#calculate 'True/False' based on the logic listed above
df4['True/False']=
df4.to_csv('results.csv', index = False)
对于我的第一次计算(IDoccurrenceInfiles),我收到以下错误:
AttributeError: 'SeriesGroupBy' object has no attribute 'map'
此外,我不确定这是否是正确的方法。也许我是想把这件事搞得太复杂了。有人能帮忙吗。先谢谢你
如果在某些文件中没有重复} 与“按计数和总和聚合”以及“按条件最后设置新列”:
activeUsers
,则可以使用^{相关问题 更多 >
编程相关推荐