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")
输出:
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
对象的 to_csv
方法(例如可以使用 pd.merge(...).to_csv("output_csv_path.csv")
)。
有关其他详细信息,请参阅 pandas 文档。
我有 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")
输出:
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
对象的 to_csv
方法(例如可以使用 pd.merge(...).to_csv("output_csv_path.csv")
)。
有关其他详细信息,请参阅 pandas 文档。