在组的最后一个元素之后添加行
Add row after the last element of a group
关于pandas,我有2个数据帧:
数据框 1:
0 |一个 | 0
1 |一个 | 1
2 |一个 | 2
3 |乙 | 0
4 |乙 | 2
5 | c | 0
6 | c | 7
...(继续)
数据框 2:
0 |一个 | x
1 |乙 | y
2 | c | z
...(继续)
数据框 1:
我需要在 dataframe1 中每个组的最后一个元素之后添加 x,y。生成的数据框应如下所示:
结果数据帧:
0 |一个 | 0
1 |一个 | 1
2 |一个 | 2
3 |一个 | x
4 |乙 | 0
5 |乙 | 2
6 |乙 | y
...
有什么想法吗?非常感谢!
如果 df1
中的值按第一列排序,则使用 concat
+ sort_values
+ reset_index
:
df = pd.concat([df1,df2]).sort_values('a').reset_index(drop=True)
print (df)
a b
0 a 0
1 a 1
2 a 2
3 a x
4 b 0
5 b 2
6 b y
7 c 0
8 c 7
9 c z
要对 df1
中的值进行排序,请使用:
df1 = df1.sort_values('a')
输入:
print (df1)
a b
0 a 0
1 a 1
2 a 2
3 b 0
4 b 2
5 c 0
6 c 7
print (df2)
a b
0 a 0
1 a 1
2 a 2
3 a x
4 b 0
5 b 2
6 b y
7 c 0
8 c 7
9 c z
10 c z1
评论的另一个解决方案:
df = pd.concat([df1.set_index('a'),df2.set_index('a')]).sort_index().reset_index()
print (df)
a b
0 a 0
1 a 1
2 a 2
3 a x
4 b 0
5 b 2
6 b y
7 c 0
8 c 7
9 c z
10 c z1
关于pandas,我有2个数据帧:
数据框 1:
0 |一个 | 0
1 |一个 | 1
2 |一个 | 2
3 |乙 | 0
4 |乙 | 2
5 | c | 0
6 | c | 7
...(继续)
数据框 2:
0 |一个 | x
1 |乙 | y
2 | c | z
...(继续)
数据框 1:
我需要在 dataframe1 中每个组的最后一个元素之后添加 x,y。生成的数据框应如下所示:
结果数据帧:
0 |一个 | 0
1 |一个 | 1
2 |一个 | 2
3 |一个 | x
4 |乙 | 0
5 |乙 | 2
6 |乙 | y
...
有什么想法吗?非常感谢!
如果 df1
中的值按第一列排序,则使用 concat
+ sort_values
+ reset_index
:
df = pd.concat([df1,df2]).sort_values('a').reset_index(drop=True)
print (df)
a b
0 a 0
1 a 1
2 a 2
3 a x
4 b 0
5 b 2
6 b y
7 c 0
8 c 7
9 c z
要对 df1
中的值进行排序,请使用:
df1 = df1.sort_values('a')
输入:
print (df1)
a b
0 a 0
1 a 1
2 a 2
3 b 0
4 b 2
5 c 0
6 c 7
print (df2)
a b
0 a 0
1 a 1
2 a 2
3 a x
4 b 0
5 b 2
6 b y
7 c 0
8 c 7
9 c z
10 c z1
df = pd.concat([df1.set_index('a'),df2.set_index('a')]).sort_index().reset_index()
print (df)
a b
0 a 0
1 a 1
2 a 2
3 a x
4 b 0
5 b 2
6 b y
7 c 0
8 c 7
9 c z
10 c z1