首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python数据角力

Python数据角力
EN

Stack Overflow用户
提问于 2019-05-20 01:13:56
回答 1查看 92关注 0票数 1

我在下面有一个Python格式的数据帧:

代码语言:javascript
复制
print (df)
         Date  Hour  Weight
0  2019-01-01     8       1
1  2019-01-01    16       2
2  2019-01-01    24       6
3  2019-01-02     8      10
4  2019-01-02    16       4
5  2019-01-02    24      12
6  2019-01-03     8      10
7  2019-01-03    16       6
8  2019-01-03    24       5

我如何创建一个列(New_Col),它将返回一天中'Weight‘的最低值'Hour’。我期待着:

代码语言:javascript
复制
Date       Hour  Weight New_Col
2019-01-01  8    1      8
2019-01-01  16   2      8
2019-01-01  24   6      8
2019-01-02  8    10     16 
2019-01-02  16   4      16
2019-01-02  24   12     16
2019-01-03  8    10     24
2019-01-03  16   6      24
2019-01-03  24   5      24
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-20 01:19:05

DataFrameGroupBy.idxmin使用GroupBy.transform,但首先按Hour列为每个组的每个最小WeightHour中的值创建索引:

代码语言:javascript
复制
df['New'] = df.set_index('Hour').groupby('Date')['Weight'].transform('idxmin').values
print (df)
         Date  Hour  Weight  New_Col  New
0  2019-01-01     8       1        8    8
1  2019-01-01    16       2        8    8
2  2019-01-01    24       6        8    8
3  2019-01-02     8      10       16   16
4  2019-01-02    16       4       16   16
5  2019-01-02    24      12       16   16
6  2019-01-03     8      10       24   24
7  2019-01-03    16       6       24   24
8  2019-01-03    24       5       24   24

替代解决方案:

代码语言:javascript
复制
df['New'] = df['Date'].map(df.set_index('Hour').groupby('Date')['Weight'].idxmin())
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56210196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档