pandas merge、concat合并数据集及选择带空值的行

本文主要介绍使用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

猜你喜欢

转载自blog.csdn.net/qq_28811329/article/details/80030073
今日推荐