A B
0 2002-01-16 10
1 2002-01-16 7
2 2002-01-16 2
3 2002-01-16 8
4 2002-01-16 5
5 2002-01-17 54
6 2002-01-17 6
7 2002-01-17 2
我想添加一个C列,其中包含每个A列日期组的第一个B列值。输出可能是:
A B C
0 2002-01-16 10 10
1 2002-01-16 7 10
2 2002-01-16 2 10
3 2002-01-16 8 10
4 2002-01-16 5 10
5 2002-01-17 54 54
6 2002-01-17 6 54
7 2002-01-17 2 54
我已经测试过:
df["C"] = df.values[0][1]
但是,它不会更改每个“列A”日期组的值。
谢谢。
最佳答案
您可以对A列进行分组,然后对B列使用.transform('first')
来生成一个序列,该序列具有该组中所有项目的第一个值,例如:
df.loc[:, 'C'] = df.groupby('A').B.transform('first')
这将使您的示例框架为:
A B C
0 2002-01-16 10 10
1 2002-01-16 7 10
2 2002-01-16 2 10
3 2002-01-16 8 10
4 2002-01-16 5 10
5 2002-01-17 54 54
6 2002-01-17 6 54
7 2002-01-17 2 54