Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 计算百分比变化(熊猫)_Pandas - Fatal编程技术网

Pandas 计算百分比变化(熊猫)

Pandas 计算百分比变化(熊猫),pandas,Pandas,我试图获得在特定日期/月份出现的水果选择百分比,如示例中所示 我可以通过下面的一行得到整个df的总平均值。但是,我想查看天数/月份的百分比变化 df['apple%'] = df['fruit'].eq(apple).groupby(df['name']).transform('mean') df['orange%'] = df['fruit'].eq(orange).groupby(df['name']).transform('mean') 原始df: date name fr

我试图获得在特定日期/月份出现的水果选择百分比,如示例中所示

我可以通过下面的一行得到整个df的总平均值。但是,我想查看天数/月份的百分比变化

df['apple%'] = df['fruit'].eq(apple).groupby(df['name']).transform('mean')

df['orange%'] = df['fruit'].eq(orange).groupby(df['name']).transform('mean')
原始df:

date    name    fruit   
1-Jan   john    apple       
1-Feb   john    orange  
1-Mar   john    apple   
1-Apr   john    apple   
1-May   john    orange  
1-Jun   john    apple   
1-Jul   john    apple   
我希望得到的是:

date    name    fruit    apple%     orange%
1-Jan   john    apple    100%   
1-Feb   john    orange   50%        50%
1-Mar   john    apple    67%        33%
1-Apr   john    apple    75%        25%
1-May   john    orange   60%        40%
1-Jun   john    apple    67%        33%
1-Jul   john    apple    71%        29%
我已经按照建议添加了df。 非常感谢


data={'date':['1-Jan','1-Feb','1-Mar','1-Apr','1-May','1-Jun','7-1'],'name':['john','john','john','john','john'],
‘水果’:[‘苹果’、‘橘子’、‘苹果’、‘苹果’、‘橘子’、‘苹果’、‘苹果’]]
df=pd.DataFrame(数据)
打印(df)
使用:


输出

    date  name   fruit       apple     orange
0  1-Jan  john   apple  100.000000   0.000000
1  1-Feb  john  orange   50.000000  50.000000
2  1-Mar  john   apple   66.666667  33.333333
3  1-Apr  john   apple   75.000000  25.000000
4  1-May  john  orange   60.000000  40.000000
5  1-Jun  john   apple   66.666667  33.333333
6  1-Jul  john   apple   71.428571  28.571429

使用:


输出

    date  name   fruit       apple     orange
0  1-Jan  john   apple  100.000000   0.000000
1  1-Feb  john  orange   50.000000  50.000000
2  1-Mar  john   apple   66.666667  33.333333
3  1-Apr  john   apple   75.000000  25.000000
4  1-May  john  orange   60.000000  40.000000
5  1-Jun  john   apple   66.666667  33.333333
6  1-Jul  john   apple   71.428571  28.571429


如果您能轻松提供生成
原始df
的代码,那么开发人员就可以专注于为您的问题找到解决方案,而不是浪费时间来生成
原始df
。如果您能轻松提供生成
原始df
的代码,那么开发人员就可以专注于找到解决方案,这将是一件好事解决您的问题,不浪费时间生成
原始df
。嗨,ansev,谢谢您的帮助。当我有两种以上的水果(苹果、橘子、香蕉等)和名字(约翰、皮特、简)时,该行应该做哪些更改。数据={'date':['1-Jan'、'1-Feb'、'1-Mar'、'1-Apr'、'1-May'、'1-Jun'、'7月1日'、'8月1日'、'1-Sep']、'name':['pete'、'john'、'john'、'john'、'john'、'john'、'pete'、'john'、'jane'、'ja['apple','banana','orange','apple','banana','orange','apple','apple','banana']}你好,谢谢你的帮助。当我有两种以上的水果(苹果,橘子,香蕉等)和名字(john,pete,jane)时,应该在队列中更改什么。数据={'date':['1-Jan'、'1-Feb'、'1-Mar'、'1-Apr'、'1-May'、'1-Jun'、'7-Jun'、'1-Aug'、'1-Sep']、'name':['pete'、'john'、'john'、'john'、'john'、'john'、'john'、'john'、'john'、'jane']、'fruit'、'fruit':['apple'、'香蕉]、'