本文主要介绍使用merge和concat对DataFrame进行连接合并,以及如何从数据中选出含有一个或多个空值的行。
首先创建两个dataframe:
df1 = pd.DataFrame([['a', 1], ['b', 2],['c',3],['d',4]],columns=['letter', 'number'])
print(df1)
# letter number
# 0 a 1
# 1 b 2
# 2 c 3
# 3 d 4
df2 = pd.DataFrame([['c', 9], ['d', 8]],columns=['letter', 'number2'])
print(df2)
# letter number2
# 0 c 9
# 1 d 8
concat轴向连接,"axis=0"表示横轴,即按行拼接合并:
cdf2=pd.concat([df1, df2],axis=0)
print(cdf2)
# letter number number2
# 0 a 1.0 NaN
# 1 b 2.0 NaN
# 2 c 3.0 NaN
# 3 d 4.0 NaN
# 0 c NaN 9.0
# 1 d NaN 8.0
concat按列拼接合并:
cdf=pd.concat([df1, df2],axis=1)
print(cdf)
#letter number letter number2
# 0 a 1 c 9.0
# 1 b 2 d 8.0
# 2 c 3 NaN NaN
# 3 d 4 NaN NaN
merge通过键合并,"on"指定用于连接的列(键):
mdf=pd.merge(df1,df2,on=['letter'],how='left')
print(mdf)
# letter number number2
# 0 a 1 NaN
# 1 b 2 NaN
# 2 c 3 9.0
# 3 d 4 8.0
从dataframe中选出带有空值的行:
print(mdf[mdf.isnull().values])
# letter number number2
# 0 a 1 NaN
# 1 b 2 NaN