gpt4 book ai didi

python - 根据Python中的第一行拆分 Pandas 表

转载 作者:太空宇宙 更新时间:2023-11-04 00:52:28 25 4
gpt4 key购买 nike

我有一张 Pandas table :

Data   Years  Y
A 2001 3
A 2007 5
A 2002 8
A 2009 1
B 2001 8
В 2004 5
С 2004 4
С 2006 6
С 2005 9

如何分别分析 A、B 和 C 的所有数据?例如,每个 DataYear 在一个图中的直方图?它是否应该带有数据透视表?

最佳答案

你可以试试pivot :

print df
Data Years Y
0 A 2001 3
1 A 2007 5
2 A 2002 8
3 A 2009 1
4 B 2001 8
5 B 2004 5
6 C 2004 4
7 C 2006 6
8 C 2005 9

df1 = df.pivot(index='Data', columns='Years', values='Y')
print df1
Years 2001 2002 2004 2005 2006 2007 2009
Data
A 3.0 8.0 NaN NaN NaN 5.0 1.0
B 8.0 NaN 5.0 NaN NaN NaN NaN
C NaN NaN 4.0 9.0 6.0 NaN NaN

如果您需要计数而不是 NaN 值,请使用 notnull然后通过 astype 将 bool 型 DataFrame 转换为 int :

print df1.notnull().astype(int)
Years 2001 2002 2004 2005 2006 2007 2009
Data
A 1 1 0 0 0 1 1
B 1 0 1 0 0 0 0
C 0 0 1 1 1 0 0

如果您在 Years 列中有重复数据,您可以使用 pivot_table使用 aggfunc,例如求和。我在行 23 中有重复项:

print df
Data Years Y
0 A 2001 3
1 A 2007 5
2 A 2002 8
3 A 2002 10
4 A 2009 1
5 B 2001 8
6 B 2004 5
7 C 2004 4
8 C 2006 6
9 C 2005 9

print df.pivot_table(index='Data', columns='Years', values='Y', aggfunc=sum)
Years 2001 2002 2004 2005 2006 2007 2009
Data
A 3.0 18.0 NaN NaN NaN 5.0 1.0
B 8.0 NaN 5.0 NaN NaN NaN NaN
C NaN NaN 4.0 9.0 6.0 NaN NaN

关于python - 根据Python中的第一行拆分 Pandas 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36571460/

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