| 名称名称名称|猫|狗|青蛙|Pig|| - -|- -|- -|- -|- -|| 阿娜|第0页|一个|第0页|第0页|| 阿娜|一个|第0页|一个|第0页|| 名称名称名称|猫|狗|青蛙|Pig|| - -|- -|- -|- -|- -|| 阿娜|一个|一个|一个|第0页|我想按名称对这两行进行分组,并在填充时将“零”替换为1。
iyr7buue1#
将groupby与max()一起使用
groupby
max()
df = df.groupby('Name').max().reset_index()
输出:
> df Name Cat Dog Frog Pig 0 Ana 1 1 1 0
gkn4icbw2#
在这里你可能需要做的是一个聚合。获得你想要的输出的一个方法是使用Pandas Dataframe 方法grouby()和sum()我会这么做。
import pandas as pd data = [ ('Ana', 0, 1, 0, 0) , ('Ana', 1, 0, 1, 0) ] df = pd.DataFrame(data, columns=['Name', 'Cat', 'Dog', 'Frog', 'Pig']) print(df.groupby(['Name']).sum())
则输出将为:
Cat Dog Frog Pig Name Ana 1 1 1 0
如果您想了解更多有关这些方法的信息,请访问以下链接:
分组依据():https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html求和():https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sum.html
2条答案
按热度按时间iyr7buue1#
将
groupby
与max()
一起使用输出:
gkn4icbw2#
在这里你可能需要做的是一个聚合。获得你想要的输出的一个方法是使用Pandas Dataframe 方法grouby()和sum()
我会这么做。
则输出将为:
如果您想了解更多有关这些方法的信息,请访问以下链接:
分组依据():https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.groupby.html
求和():https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sum.html