Panda处理CSV文件,如果A列值为空,则用B列值填充,如果B列值仍为空,用C列值填充A

简介: Panda处理CSV文件,如果A列值为空,则用B列值填充,如果B列值仍为空,用C列值填充A

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。

相关文章
|
15小时前
|
数据采集 数据可视化 数据挖掘
使用Pandas对Data列进行基于顺序的分组排列
使用Pandas对Data列进行基于顺序的分组排列
12 0
|
15小时前
|
Python
dataframe循环更新某列的值
使用Python的for循环和Pandas DataFrame的iterrows()方法可更新DataFrame列值。示例中创建新列'D',其值为旧列'C'的一半。
29 2
|
前端开发
Bootstrap - 列排序,列偏移,列嵌套
Bootstrap - 列排序,列偏移,列嵌套
71 0
DataTable 修改列名 删除列 调整列顺序
DataTable 修改列名 删除列 调整列顺序
169 0
|
索引 Python
pandas 按某一列A排序,按B和C两列分组,选择分组后A列值最大的行
pandas 按某一列A排序,按B和C两列分组,选择分组后A列值最大的行
|
数据挖掘 Python
把一个csv数据文件,第一行头文件(字段名)不变,按某列(第四列)降序排列,另行保存为csv 文件
把一个csv数据文件,第一行头文件(字段名)不变,按某列(第四列)降序排列,另行保存为csv 文件
177 0
把一个csv数据文件,第一行头文件(字段名)不变,按某列(第四列)降序排列,另行保存为csv 文件
|
前端开发
左右两列同高
实现左右两个div高度随着另一个div高度的变化而变化,取最大值 下面上css .content { display: table; } .left { display: table-cell; width: 200px; /*如果两个div需要隔开,我们可以设置div的边框*/ border-right: 20px solid #f2f2f2; } .
910 0