繁体   English   中英

Python pandas groupby 比较列表

[英]Python pandas groupby compare lists

我有 2 个 csv 文件,其中包含我想要比较的成员列表。 结果,我希望有 1 个包含所有成员的列表,并指示他们出现在哪个列表中,我还想计算辍学率。 我想用 pandas 来做这件事。

第一个文件:

ID,LastName,FirstName,BirthDate
1,A,a,01/01/1901
2,B,b,01/01/1902
3,C,c,01/01/1903
4,D,d,01/01/1904

第二个文件:

ID,LastName,FirstName,BirthDate
1,A,a,01/01/1901
4,D,d,01/01/1904
5,E,e,01/01/1905
6,F,f,01/01/1906

结果:

ID,LastName,FirstName,BirthDate,Old,New
1,A,a,01/01/1901,Yes,Yes
2,B,b,01/01/1902,Yes,No
3,C,c,01/01/1903,Yes,No
4,D,d,01/01/1904,Yes,Yes
5,E,e,01/01/1905,No,Yes
6,F,f,01/01/1906,No,Yes

计算 DropOut:不在第二个文件中的成员/两个文件中的总成员

df1中填写“旧”列,在df2中填写“新”列:

df1["Old"]="Yes"
df2["New"]="Yes"

然后:

pd.merge(
    df1.reset_index(),
    df2.reset_index(),
    how="outer"
).fillna("No").set_index("ID")

output:

ID  LastName    FirstName   BirthDate   Old New
1   A   a   01/01/1901  Yes Yes
2   B   b   01/01/1902  Yes No
3   C   c   01/01/1903  Yes No
4   D   d   01/01/1904  Yes Yes
5   E   e   01/01/1905  No  Yes
6   F   f   01/01/1906  No  Yes

要读取 csv 文件,只需使用pd.read_csv("csv_path.csv") ,而要导出,您可以使用pd.DataFrame object 的to_csv方法(例如,您可以执行pd.merge(...).to_csv("output_csv_path.csv") )。

有关其他详细信息,请参阅 pandas 文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM