我有一个具有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行映射)。
答案 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))
编辑:
要替换NaN
的值,可以使用pandas.DataFrame.fillna:
print (pd.concat(frames).fillna("NULL"))
Replcae NULL
包含您想要的任何内容,例如0
输出: