Python:Pandas,iterrow 的替代选项

问题描述 投票:0回答:1

与 iterrows 相比,我知道一种更有效的方法来迭代 pandas 数据帧上的行。 我知道它存在地图选项,但我找不到一个很好的例子。 许多示例都基于 csv 的固定列,并且您知道列的名称。 但让我们想象一种情况,您收到许多 csv,并且每个 csv 都有不同的列数。 我希望我的代码尽可能最通用。 我需要迭代所有行并添加每个值(行的列)来为每行创建一个列表:

files = os.listdir(rute)

for file in list(files):
    filename = rute + '\\' + file
    print(filename)
    df = pd.read_csv(filename, index_col=None, header=0)
    df = df.fillna('') 
    columns = list(df.columns)
    
    for idx, row in df.iterrows():
        fila = []
        for key in columns:
            fila.append(row[key])
        print(fila)

这可行,但我想找到一种最有效的方法来做到这一点。 谢谢

python pandas loops csv optimization
1个回答
0
投票

你可以像这样使用

apply
:

list_of_row_values = df.apply(lambda row: row.tolist(), axis=1)

axis=1
使其可以逐列工作,直接操作每一行。

© www.soinside.com 2019 - 2024. All rights reserved.