gpt4 book ai didi

python - 使用 Python 将数据框内容(有效地)复制到另一个数据框内

转载 作者:行者123 更新时间:2023-11-28 21:08:38 28 4
gpt4 key购买 nike

我有一个数据框(df1):

enter image description here

然后我创建了一个新数据框 (df2),它的行数是 fd1 的两倍。我的目标是以一种巧妙的方式将第一个数据帧的一些元素复制到第二个数据帧中,这样结果如下所示:

enter image description here

到目前为止,我能够通过使用以下命令达到这个目标:

raw_data = {'A': ['pinco', 'pallo', 'pollo'], 
'B': ['lollo', 'fallo', 'gollo'],
'C': ['pizzo', 'pazzo', 'razzo']}
df1 = pd.DataFrame(raw_data, columns = ['A', 'B', 'C'])
columns = ['XXX','YYY', 'ZZZ']
N = 3
df2 = pd.DataFrame(columns=columns,index=range(N*2))

idx = 0
for i in range(N):
df2['XXX'].loc[idx] = df1['A'].loc[i]
df2['XXX'].loc[idx+1] = df1['A'].loc[i]
df2['YYY'].loc[idx] = df1['B'].loc[i]
df2['YYY'].loc[idx+1] = df1['C'].loc[i]
idx += 2

但是我正在寻找一种更有效(更紧凑和优雅)的方法来获得这个结果。我尝试在 for 循环中使用以下组合但没有成功:

df2[['XXX','YYY']].loc[idx] = df1[['A', 'B']].loc[i]
df2[['XXX','YYY']].loc[idx+1] = df1[['A', 'C']].loc[i]

最佳答案

你可以这样做:

df2['XXX'] = np.repeat(df1['A'].values, 2)   # Repeat elements in A twice
df2.loc[::2, 'YYY'] = df1['B'].values # Fill even rows with B values
df2.loc[1::2, 'YYY'] = df1['C'].values # Fill odd rows with C values

XXX YYY ZZZ
0 pinco lollo NaN
1 pinco pizzo NaN
2 pallo fallo NaN
3 pallo pazzo NaN
4 pollo gollo NaN
5 pollo razzo NaN

关于python - 使用 Python 将数据框内容(有效地)复制到另一个数据框内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39526886/

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