我是一名有用的助手,可以为您翻译文本。
我有两个数据框:第一个(df1)如下:
df1 = pd.DataFrame({'col1': [0,1], 'col2': [0,1]})
df1 = df1.rename(index = {k:v for k,v in zip([0,1],['zero','one'])})
print(df1)
col1 col2
zero 0 0
one 1 1
第二个数据框(df2)为:
df2 = pd.DataFrame({k:v for k,v in zip(['col'+str(i) for i in range(3,10)],
[[2,3]]*7)
})
print(df2)
col3 col4 col5 col6 col7 col8 col9
0 2 2 2 2 2 2 2
1 3 3 3 3 3 3 3
最终产品(df3)应该像这样:
col1 col2 col3 col4 col5 col6 col7 col8 col9
zero 0 0 2 2 2 2 2 2 2
one 1 1 3 3 3 3 3 3 3
这是我做事的方式,但对我来说有点不符合Pythonic风格:
df3 = df1.reset_index(drop = True)
df3 = df3.join(df2.reset_index(drop = True))
df3 = df3.rename(index = {k:v for k,v in zip(df3.index,df1.index)})
print(df3)
有没有一行代码可以完成这个工作?谢谢大家。
set_index
的典型用法 - 显然将某些列转换为索引,就像df.set_index('A')
一样,但可以通过传递数组来转换索引的所有值,就像我在答案中所示。 - jezrael.set_index([L])
。请查看已编辑的答案。 - jezrael