2024-05-20 20:46:38 发布
网友
我有一个熊猫df,看起来像下面这样
df = pd.DataFrame({'Amount': [1,2,3,4,6,7], 'Name': ['person1', 'person1' ,'person2' ,'person2','person3','person3'],})
我要做的是创建第三列,显示每个人的最小金额。最有效的方法是什么?你知道吗
关键是使用^{},这非常有用,因此我强烈建议阅读链接在那里的文档部分。您可以得到一个Series,其中包含每个人的最小值:
Series
>>> df.groupby("Name")["Amount"].min() Name person1 1 person2 3 person3 6 Name: Amount, dtype: int64
或与DataFrame相同的信息:
DataFrame
>>> df.groupby("Name", as_index=False)["Amount"].min() Name Amount 0 person1 1 1 person2 3 2 person3 6 [3 rows x 2 columns]
或者,如果您真的想将列添加到原始数据帧中,可以使用transform:
transform
>>> df["Minimum_Amount"] = df.groupby("Name")["Amount"].transform('min') >>> df Amount Name Minimum_Amount 0 1 person1 1 1 2 person1 1 2 3 person2 3 3 4 person2 3 4 6 person3 6 5 7 person3 6 [6 rows x 3 columns]
关键是使用^{} ,这非常有用,因此我强烈建议阅读链接在那里的文档部分。您可以得到一个
Series
,其中包含每个人的最小值:或与
DataFrame
相同的信息:或者,如果您真的想将列添加到原始数据帧中,可以使用
transform
:相关问题 更多 >
编程相关推荐