Python:如何执行以下数据框操作

我有两个数据框

https://img1.sycdn.imooc.com/65b1061f00017eb201460138.jpghttps://img1.sycdn.imooc.com/65b106250001bf1b01510132.jpg

两个 dfs 的代码如下


import pandas as pd

df1 = pd.DataFrame({'income1': [-13036.0, 1200.0, -12077.5, 1100.0],

                   'income2': [-30360.0, 2000.0, -2277.5, 1500.0],


})



df2 = pd.DataFrame({'name1': ['abc', 'deb', 'hghg', 'gfgf'],

                   'name2': ['dfd', 'dfd1', 'df3df', 'fggfg'],


})

我想将 2 个 df 组合起来,得到一个 df,其名称与相应的收入值相对应,如下所示。任何帮助表示赞赏。请注意,我希望它的顺序与输出中所示的顺序相同。

https://img1.sycdn.imooc.com/65b10631000104b602030300.jpg

哔哔one
浏览 105回答 2
2回答

慕村225694

这里可以将值转换为 numpy 数组并通过传递给DataFrame构造函数进行展平:df = pd.DataFrame({'Name': np.ravel(df2.to_numpy()),                    'Income': np.ravel(df1.to_numpy())})print (df)    Name   Income0    abc -13036.01    dfd -30360.02    deb   1200.03   dfd1   2000.04   hghg -12077.55  df3df  -2277.56   gfgf   1100.07  fggfg   1500.0或者concat使用DataFrame.stack和Series.reset_index作为默认索引值:df = pd.concat([df2.stack().reset_index(drop=True),                 df1.stack().reset_index(drop=True)],axis=1, keys=['Name','Income'])print (df)    Name   Income0    abc -13036.01    dfd -30360.02    deb   1200.03   dfd1   2000.04   hghg -12077.55  df3df  -2277.56   gfgf   1100.07  fggfg   1500.0

忽然笑

尝试这个:incomes = pd.concat([df1.income1, df1.income2], axis = 0)names   = pd.concat([df2.name1  , df2.name2]  , axis = 0)df = pd.DataFrame({'Name': names, 'Incomes': incomes})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python