Panda处理CSV文件,如果A列值为空,则用B列值填充,如果B列值仍为空,用C列值填充A
需求:
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。