Python 在列中选择与瞬间t对应的值
我在Python中工作,我有一个熊猫数据框架,在不同的月份有不同的步骤:Python 在列中选择与瞬间t对应的值,python,pandas,Python,Pandas,我在Python中工作,我有一个熊猫数据框架,在不同的月份有不同的步骤: +----+-------+------+ | Id | Month | Step | +----+-------+------+ | a | 1 | a_1 | | a | 4 | a_2 | | a | 6 | a_3 | | b | 1 | a_1 | | b | 2 | a_4 | +----+-------+------+ 我想在如下表格中列出每个月对
+----+-------+------+
| Id | Month | Step |
+----+-------+------+
| a | 1 | a_1 |
| a | 4 | a_2 |
| a | 6 | a_3 |
| b | 1 | a_1 |
| b | 2 | a_4 |
+----+-------+------+
我想在如下表格中列出每个月对应的步骤:
+----+---------+----------+---------+---------+---------+---------+
| Id | Month_1 | Month_2 | Month_3 | Month_4 | Month_5 | Month_6 |
+----+---------+----------+---------+---------+---------+---------+
| a | a_1 | a_1 | a_1 | a_2 | a_2 | a_3 |
| b | a_1 | a_4 | a_4 | a_4 | a_4 | a_4 |
+----+---------+----------+---------+---------+---------+---------+
我找不到简单的解决方案,所以如果有人有解决方案,我就拿 使用:
如果你想在几个月内风靡一时 填充和使用:
new_df=( df.pivot_table(index='Id',columns='Month',values='Step',aggfunc=''.join)
.reindex(columns=range(df['Month'].min(),df['Month'].max()+1))
.ffill(axis=1)
.add_prefix('Month_')
.rename_axis(columns=None)
.reset_index())
print(new_df)
Id Month_1 Month_2 Month_3 Month_4 Month_5 Month_6
0 a a_1 a_1 a_1 a_2 a_2 a_3
1 b a_1 a_4 a_4 a_4 a_4 a_4
如果您不想填充,请删除
ffill
您没有采取最后一步:)-.ffill(1)
在之前添加前缀(“月”)
我不知道OP是否想要ffill。谢谢你的建议:)
new_df=( df.pivot_table(index='Id',columns='Month',values='Step',aggfunc=''.join)
.reindex(columns=range(df['Month'].min(),df['Month'].max()+1))
.ffill(axis=1)
.add_prefix('Month_')
.rename_axis(columns=None)
.reset_index())
print(new_df)
Id Month_1 Month_2 Month_3 Month_4 Month_5 Month_6
0 a a_1 a_1 a_1 a_2 a_2 a_3
1 b a_1 a_4 a_4 a_4 a_4 a_4