gpt4 book ai didi

python - 从一个数据框中获取列名,并将它们作为空列添加到 Pandas 的另一个数据框中

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

我有一个包含 5 列的数据框 (df1) 和另一个包含 10 列的数据框 (df2)。我想将 df2 中的列添加到 df1,但只添加列名(没有值)。此外,我想将没有值的列从 df1 添加到 df2。

这是数据框:

df1

  A      B     C      D     E     
1 234 52 1 54
54 23 87 5 125
678 67 63 8 18
45 21 36 5 65
8 5 24 3 13

df2

  F      G     H      I     J      K      L     M      N     O     
12 34 2 17 4 19 54 7 58 123
154 3 7 53 25 2 47 27 84 6
78 7 3 82 8 56 21 29 547 1

我想得到这个:

df1

  A      B     C      D     E      F      G      H      I      J      K      L      M      N      O     
1 234 52 1 54
54 23 87 5 125
678 67 63 8 18
45 21 36 5 65
8 5 24 3 13

我想得到这个:

df2

  A       B       C       D      E      F      G     H      I     J      K      L     M      N     O     
12 34 2 17 4 19 54 7 58 123
154 3 7 53 25 2 47 27 84 6
78 7 3 82 8 56 21 29 547 1

我尝试使用 df.columns.values 并获得了列名称数组,但随后我必须将它们应用为数据框列并给它们空值,而我现在的做法有太多代码行,我只是想知道是否有更简单的方法来做到这一点?我将不胜感激任何帮助。

最佳答案

使用Index.unionDataFrame.reindex :

cols = df1.columns.union(df2.columns)
#if order is important
#cols = df1.columns.append(df2.columns)

df1 = df1.reindex(columns=cols)
df2 = df2.reindex(columns=cols)

print (df1)
A B C D E F G H I J K L M N O
0 1 234 52 1 54 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 54 23 87 5 125 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 678 67 63 8 18 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 45 21 36 5 65 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 8 5 24 3 13 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

print (df2)
A B C D E F G H I J K L M N O
0 NaN NaN NaN NaN NaN 12 34 2 17 4 19 54 7 58 123
1 NaN NaN NaN NaN NaN 154 3 7 53 25 2 47 27 84 6
2 NaN NaN NaN NaN NaN 78 7 3 82 8 56 21 29 547 1

如果两个 DataFrame 中的索引值相同,则可以使用 DataFrame.align :

print (df1)
A B C D E
0 1 234 52 1 54
1 54 23 87 5 125
2 678 67 63 8 18

df1, df2 = df1.align(df2)
print (df1)
A B C D E F G H I J K L M N O
0 1 234 52 1 54 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 54 23 87 5 125 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 678 67 63 8 18 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

print (df2)
A B C D E F G H I J K L M N O
0 NaN NaN NaN NaN NaN 12 34 2 17 4 19 54 7 58 123
1 NaN NaN NaN NaN NaN 154 3 7 53 25 2 47 27 84 6
2 NaN NaN NaN NaN NaN 78 7 3 82 8 56 21 29 547 1

关于python - 从一个数据框中获取列名,并将它们作为空列添加到 Pandas 的另一个数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53607377/

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