简体   繁体   English

在 Pandas 中分组并打印整个数据帧

[英]Groupby and print entire dataframe in Pandas

I have a dataset as below, in this case, I want to count the number of fruits in each country and output as a column in the dataset.我有一个如下的数据集,在这种情况下,我想计算每个国家的水果数量并输出为数据集中的一列。

I tried to use groupby, df=df.groupby('Country')['Fruits'].count(),我尝试使用 groupby, df=df.groupby('Country')['Fruits'].count(),

but in this case I am not getting the expected results as the groupby just outputs the count and not the entire dataframe/dataset.但在这种情况下,我没有得到预期的结果,因为 groupby 只输出计数而不是整个数据帧/数据集。

It would be helpful if someone can suggest a better way to do this.如果有人可以提出更好的方法来做到这一点,那将会很有帮助。

Dataset数据集

Country     Fruits      Price       Sold            Weather     

India       Mango       200         Market          sunny
India       Apple       250         Shops           sunny
India       Banana      50          Market          winter
India       Grapes      150         Road            sunny
Germany     Apple       350         Supermarket     Autumn
Germany     Mango       500         Supermarket     Rainy
Germany     Kiwi        200         Online          Spring
Japan       Kaki        300         Online          sunny
Japan       melon       200         Supermarket     sunny

Expected Output预期产出


Country     Fruits      Price       Sold            Weather     Number

India       Mango       200         Market          sunny       4
India       Apple       250         Shops           sunny       4
India       Banana      50          Market          winter      4
India       Grapes      150         Road            sunny       4
Germany     Apple       350         Supermarket     Autumn      3
Germany     Mango       500         Supermarket     Rainy       3
Germany     Kiwi        200         Online          Spring      3
Japan       Kaki        300         Online          sunny       2
Japan       melon       200         Supermarket     sunny       2

Thank you:)谢谢:)

You are looking for transform :您正在寻找transform

df['count'] = df.groupby('Country')['Fruits'].transform('size')

   Country  Fruits  Price         Sold Weather  count
0    India   Mango    200       Market   sunny      4
1    India   Apple    250        Shops   sunny      4
2    India  Banana     50       Market  winter      4
3    India  Grapes    150         Road   sunny      4
4  Germany   Apple    350  Supermarket  Autumn      3
5  Germany   Mango    500  Supermarket   Rainy      3
6  Germany    Kiwi    200       Online  Spring      3
7    Japan    Kaki    300       Online   sunny      2
8    Japan   melon    200  Supermarket   sunny      2

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

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