与 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)
这可行,但我想找到一种最有效的方法来做到这一点。 谢谢
你可以像这样使用
apply
:
list_of_row_values = df.apply(lambda row: row.tolist(), axis=1)
axis=1
使其可以逐列工作,直接操作每一行。