有如下表格,目标是快速的向C列填充上自己需要的值。pandas本身提供了fillna的方法,但是不是特别灵活,例如两个空格需要填充上不同的值,fillna方法就不一定能用的上了
现提供一种新的方法,用以填充数据。
总体思路如下:
>>> import pandas as pd
>>> import numpy as np
# 读取excel数据
>>> df = pd.read_excel(r'D:/myExcel/1.xlsx')
>>> df
name C
0 bog 45.0
1 millor NaN
2 jiken 23.0
3 senson NaN
# 判断出C列的nan值位置
>>> dh = df[pd.isna(df['C'])]
>>> dh
name C
1 millor NaN
3 senson NaN
# 定义series,表示需要填充的数值,此处index需要与df
# 的index保持一致,否则无法填充。至于需要填充的数值
# 自己可以自定义,此处是根据range函数生成的
>>> se = pd.Series(range(0, 2), index = dh.index)
>>> df.loc[dh.index, 'C'] = se
>>> df
name C
0 bog 45.0
1 millor 0.0
2 jiken 23.0
3 senson 1.0
# 进行强制类型转换,获得结果
>>> df['C'] = df['C'].astype(int)
>>> df
name C
0 bog 45
1 millor 0
2 jiken 23
3 senson 1
>>>