需求:
CSV文件中 A 列的值不全,如果为空值,则使用B 列的值,如果B列的值仍为空,则使用 C 列的值。
做法:
为简化需求,将所有值统一到 A 列,即填充 A 列空值,如果该行 B 列有值,则用 B 列值填充,否则用 C 列值填充。
代码实现:
import pandas as pd
def check_nan(x):
if pd.isnull(x['A']):
if pd.isnull(x['B']):
return x['C']
else:
return x['B']
return x['A']
# path 为输入文件,out为数据处理后的输出文件
def get_new_file(path,out):
df = pd.read_csv(path)
df['A'] = df.apply(lambda x : check_nan(x), axis=1)
df.to_csv(out, index = False)
代码理解:
1. 函数 check_nan(x) 实现填充功能,即检查 A 列空值,用 B 列或 C 列填充。
2. 函数 get_new_file() 使用pands,处理 CSV 文件,注意 appy() 函数中 lambda 的使用。其中 axis = 1是按列处理,若想按行处理,则用 axis = 0。