gpt4 book ai didi

python - 数据框映射练习

转载 作者:行者123 更新时间:2023-12-04 15:14:24 25 4
gpt4 key购买 nike

我刚开始学习 Python,我在做一个简单的练习。我有 3 个数据框,如下所示:

df1 :

   A B C         
0 1 2 3
1 4 5 6

df2(空):

   D E F G H
0
1

map :

   m1 m2 m3 m4 m5
0 D F H
1 A B C

我想写一个脚本,根据dfmap的映射填充df2。所以输出应该是

df2 :

   D E F G H
0 1 2 3
1 4 5 6

我开始编写这段代码,但我想我错过了 Dataframe 的所有功能(而且它不起作用 Array_df2 full of nan)我知道应该有一种最聪明/最简单的方法来做到这一点。

listcol_df1 = {}
listcol_df2 = {}

for idx, col in enumerate(df1.columns):
listcol_df1[col] = idx

for idx, col in enumerate(df2.columns):
listcol_df2[col] = idx

Array_df1 = df1.values
Array_df2 = df2.values
Array_dfmap = dfmap.values

for i in range(df1.shape[0]):
for j in range(dfmap.shape[1]):
df2[i][listcol_df2.get(Array_dfmap[0][j])] = Array_df1[i][listcol_df1.get(Array_dfmap[1][j])]

谢谢

最佳答案

您可以使用 dfmap 重命名 df1.columns 并使用它来更新 ddf2:

df2.update(df1.rename(columns=dfmap.T.set_index(1)[0]))
print(df2)

输出:

   D   E    F   G    H
0 1 NaN 2.0 NaN 3.0
1 4 NaN 5.0 NaN 6.0

关于python - 数据框映射练习,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64591966/

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