举个简单的例子:
这是xinjian1.xlsx
姓名 | 语文 | 数学 | 在读 |
小王 | 90 | 是 | |
小张 | 87 | 89 | |
小李 | 67 | 是 |
问题1:我想找到是否在读的学生,而且不用等不等于“是”来判断,而是用某单元格是否为空来判断。
第一种方式是判断该单元格类型是否为float,第二种方式是is np.nan(注意是is不是==)。
import pandas as pd
import numpy as np
df1 = pd.read_excel('xinjian1.xlsx')
for lab,rows in df1.iterrows():
print(type(df1.loc[lab,'在读'])==float)
print(df1.loc[lab,'在读']is np.nan)
这是xinjian2.xlsx
姓名 | 语文 | 数学 | 在读 |
小贺 | 80 | 是 | |
小姜 | 90 | ||
小那 | 87 | 86 |
问题2:我想把这两个表格中,不在读的同学合并到一张表格里。 这里也不用“是”来判断。
df1[(df1['在读'].isnull())] # 这种方法可以取在读列为空的行
#结果:
姓名 语文 数学 在读
1 小张 87 89.0 NaN
#合并为df3并保存
df3 = pd.concat([df1[df1['在读'].isnull()],df2[df2['在读'].isnull()]])
df3.to_excel('xinjian3.xlsx',index=False)
生成的xinjian3.xlsx
姓名 | 语文 | 数学 | 在读 |
小张 | 87 | 89 | |
小姜 | 90 | ||
小那 | 87 | 86 |