基于一列映射到数据框

时间:2019-01-08 06:59:24

标签: python python-3.x pandas dataframe

我有一个具有6行的5列(a,b,c,d,e)的数据帧(df1)和另一个具有20000行的2列(a,z)的数据帧(df2)。

如何使用('a')值映射和合并这些数据框。 因此,具有5列的df1应该将具有2列的df2中的值映射为'a'值,并返回一个新的df,该df具有6列(其中6列来自df1,而df2中有1行映射)。

1 个答案:

答案 0 :(得分:1)

通过使用pd.concat

import pandas as pd
import numpy as np

columns_df1 = ['a','b','c','d']
columns_df2 = ['a','z']
data_df1 = [['abc','def','ghi','xyz'],['abc2','def2','ghi2','xyz2'],['abc3','def3','ghi3','xyz3'],['abc4','def4','ghi4','xyz4']]
data_df2 = [['a','z'],['a2','z2']]

df_1 = pd.DataFrame(data_df1, columns=columns_df1)
df_2 = pd.DataFrame(data_df2, columns=columns_df2)
print(df_1)
print(df_2)

frames = [df_1, df_2]

print (pd.concat(frames))

输出: out

编辑:

要替换NaN的值,可以使用pandas.DataFrame.fillna

print (pd.concat(frames).fillna("NULL"))

Replcae NULL包含您想要的任何内容,例如0

输出:

out-2