python - 按重复顺序为每个多索引设置列的值
问题描述
我有一个df
包含 60 个日期的数据框,每个日期有 400 个 ID。看起来像这样:
Date ID
2018-01-01 1000
2018-01-01 1001
....
2018-02-01 1000
2018-02-01 1001
现在我想做的是创建第三列。对于给定日期的所有 ID,其值相同。我为此创建了一个单独的单列数据框df_value
,其中包含 60 个按降序排列的随机生成值:
Value
350
340
337
323
...
最后它应该是这样的:
Date ID Value
2018-01-01 1000 350
2018-01-01 1001 350
....
2018-02-01 1000 340
2018-02-01 1001 340
Date
我尝试使用和作为索引创建一个 groupby 数据框,ID
以便稍后在Placeholder
列中添加值。但无法真正弄清楚从那里去哪里:
Placeholder
Date ID
2018-01-01 1000 1
2018-01-01 1001 1
....
2018-02-01 1000 1
2018-02-01 1001 1
可能 groupby 的想法是一个死亡的结局。非常感谢您的帮助。
解决方案
GroupBy.ngroup
与 一起使用Series.map
,只有必要的默认索引在df_value
:
df['new'] = df.groupby('date').ngroup().map(df_value['value'])
推荐阅读
- r - 用列折叠行数据(字符、数字、因子等)
- delphi - 从 IDE 的结构面板中,如何将 TCard 复制到剪贴板?
- java - Maven 在构建 JAR 文件时需要包含文件
- javascript - 删除 JavaScript 字符串中 2 个特定字符串之间的字符
- java - 使用 java 的 SSL 到期信息
- c++ - 如何在 C++ 容器中将元素向左移动(以实现擦除)?
- python - 为什么 selenium 试图用以前的 ID 定位相同的元素
- c - UDP套接字不读取数据包
- javascript - 向导航栏链接添加热键快捷方式
- html - Angular:第一次从httpResponse设置值时如何调用输入ngModelChange