熊猫基于其他两个“子”框架创建数据框架

时间:2018-12-27 14:20:50

标签: python python-3.x pandas dataframe

我有两个熊猫数据框。 df1具有列['a','b','c'],而df2具有列['a','c','d']。现在,我用列['a'创建一个新的数据框df3, b','c','d']。

我想用df1和df2的所有输入填充df3。例如,如果我在df1中有x行,在df2中有y行,那么我在df3中将有x + y行。

哪个Pandas函数基于部分列填充新的数据框?

3 个答案:

答案 0 :(得分:1)

示例数据:

df1 = pd.DataFrame({'a':[1, 2, 3], 'b':[2, 3, 4], 'd':['h', 'j', 'k']})
df2 = pd.DataFrame({'a':[5, 6, 7], 'b':[1, 1, 1], 'c':[2, 2, 2]})

代码:

df1.append(df2)

出局:

   a  b    c    d
0  1  2  NaN    h
1  2  3  NaN    j
2  3  4  NaN    k
0  5  1  2.0  NaN
1  6  1  2.0  NaN
2  7  1  2.0  NaN

答案 1 :(得分:1)

使用数据框https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html的附加功能

anotherFrame = df1.append(df2, ignore_index=True)

另一种方法是合并-https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html

df1.merge(df2, how='outer')

答案 2 :(得分:1)

怎么样:

df1 =  pd.DataFrame({"a": [1,2], "b": [3,4], "c": [5,6]})
df2 =  pd.DataFrame({"a": [7,8], "c": [9,10], "d": [11,12]})
df3 = df1.append(df2, sort=False)
df3
   a    b   c     d
0  1  3.0   5   NaN
1  2  4.0   6   NaN
0  7  NaN   9  11.0
1  8  NaN  10  12.0