gpt4 book ai didi

python - 如何通过查询压缩 pandas 行?

转载 作者:行者123 更新时间:2023-12-01 01:24:30 24 4
gpt4 key购买 nike

我有一个 Pandas 数据库,采用程式化形式

{Value:[1,2,3,4,5,6,7],Time:[0,0,0,1,1,1,1],Name:[Rat,Rat,Dog,Rat,Rat,Dog,Cat]}.

我的目标是制作一个看起来像的数据框

{Value:[1.5,4.5,3,6,7],Name:[RatT0,RatT1,DogT0,DogT1,CatT1]}.

我研究过pandas.crosstabpandas.merge数据透视表,但它们都没有提供明显的方法完成这个。 groupby 看起来很有希望,但我不太清楚如何让它尊重预先存在的边界。

最佳答案

修改name列,然后groupby + mean

df['Name'] = df.Name + 'T' + df.Time.astype('str')
df.groupby('Name', as_index=False).Value.mean()

Name Value
0 CatT1 7.0
1 DogT0 3.0
2 DogT1 6.0
3 RatT0 1.5
4 RatT1 4.5
<小时/>

举例来说,您希望将具有相同 'Name' 和相同 'Time' 的组形成为组,因此您可以 groupby 两者这些列并选择如何处理分组数据(在本例中确定 'Value' 列的平均值)。然后,您可以将名称修改为您想要的名称,并删除多余的 'Time' 列。

df = df.groupby(['Name', 'Time'], as_index=False).Value.mean()
# Name Time Value
#0 Cat 1 7.0
#1 Dog 0 3.0
#2 Dog 1 6.0
#3 Rat 0 1.5
#4 Rat 1 4.5

df['Name'] = df.Name + 'T' + df.Time.astype('str')
df.drop(columns='Time', inplace=True)

关于python - 如何通过查询压缩 pandas 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53488211/

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