gpt4 book ai didi

Python Pandas 加入索引值

转载 作者:行者123 更新时间:2023-11-28 20:57:12 24 4
gpt4 key购买 nike

我想加入 2 个 DataFrame,例如:数据框 1:

A 1
B 2
C 3
D 4

数据框2:

A 1
A 3
B 4
B 3
B 7
C 4
D 6
D 8

结果应该是这样的:

A 1 1    
3
B 2 4
3
7
C 3 4
D 4 6
8

我试过 join merge 和 concat,但没有任何效果,你能帮帮我吗。

最佳答案

一种方法是这样的:

df_out = pd.concat([df1,df2])

df_out.set_index([0,df_out.groupby([0]).cumcount()])[1].unstack()

输出:

     0    1    2    3
0
A 1.0 1.0 3.0 NaN
B 2.0 4.0 3.0 7.0
C 3.0 4.0 NaN NaN
D 4.0 6.0 8.0 NaN

编辑更新以匹配预期的输出:

df_out = pd.concat([df1,df2])

df_out = df_out.set_index([0,df_out.groupby([0]).cumcount()])[1]

df_out.sort_index()

输出:

A  0    1
1 1
2 3
B 0 2
1 4
2 3
3 7
C 0 3
1 4
D 0 4
1 6
2 8
Name: 1, dtype: int64

编辑更新一点...

df_out = pd.concat([df1,df2])

df_out = df_out.set_index([0,df_out.groupby([0]).cumcount()])[1]

df_out = df_out.sort_index().to_frame()

df_out = df_out.reset_index().drop('level_1', axis=1)

df_out[0] = df_out[0].mask(df_out[0].duplicated()).fillna('')

print(df_out)

输出:

    0  1
0 A 1
1 1
2 3
3 B 2
4 4
5 3
6 7
7 C 3
8 4
9 D 4
10 6
11 8

关于Python Pandas 加入索引值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53595756/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com