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日期组的值。
谢谢。
答案 0 :(得分:3)
您可以按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