首页 > 解决方案 > 如何在不依赖列名的情况下操作数据框的值

问题描述

我有一个数据框,其中包含如下列:

MultiIndex([('Longitude', 'Field1'),
            ('Latitude', 'Field1'),
            ('Name with Name Text', 'Field1'),
            ('Name with Name Text', 'Field2'),
            ('IsPresent', 'Field1')],)

一个 csv 的例子是

在此处输入图像描述

我想遍历数据中的每一行,并且对于我想替换某些字符(如果存在)的字段的每个值。例如,替换'X''Y'。但我不想依赖列名,因为它可以更改。我想遍历每个值并剥离字符。下面的迭代有字段名称,所以不能使用它。

for i, j in df1.iterrows():
    print(j['Name with Name Text']['Field1'])

标签: pythondataframe

解决方案


尽管您当然可以按照上面评论中的描述逐行迭代,但您也可以尝试找到一个“一次”在整个列上执行所需操作的函数。

例如,将“col1”列中的所有“Y”替换为“Z”

    df["col1"] = df["col1"].apply(lambda x: x.replace("Y", "Z"))

推荐阅读