首页 > 解决方案 > 如何从csv文件中保存每一行

问题描述

我想从 csv 文件中保存每一行。但是,即使我将索引列发送为 false,它也只会打印索引列。以下是我的代码:

def sizefcn(self):
        path1 = self.folder_path
        path2 = self.file_path
        path3 = Path(path2)
        file2=self.get_entry2()
        sizes = pd.read_csv(path3,header=None, index_col=False)
        for index, row in sizes.iterrows():
            size = row
            print(size)

我输入了一个 3 行且没有标题的 csv,但它给了我索引和行,所以我得到的输出是

(0, 0    111
Name: 0, dtype: int64)
(1, 0    1111
Name: 1, dtype: int64)
(2, 0    121
Name: 2, dtype: int64)

但我希望输出是数字:111、1111、121。

标签: pythonpandascsv

解决方案


我相信index_col需要一个整数作为参数。它定义了您想要将 csv 中的哪一列用作索引。尝试完全省略它:

sizes = pd.read_csv(path3, header=None)

我应该补充一点,如果你要保存这是一个 csv,你会想要包含index=False. 例如:

sizes.to_csv('outputfilename.csv', header=False, index=False)

编辑: for 循环也在迭代索引。尝试这个:

for index, row in sizes.iterrows():
    size = row
    print(size)

我不太确定您要做什么,但是考虑到 pandas 的广泛功能,可能有比为它编写函数更好的方法。你能更详细地解释你的问题吗?

从提供的描述来看,您似乎想要这样:

for index, row in sizes.iterrows():
    size = row.to_list()
    print(size)

我试过这个,它对我有用:

In[]: df = pd.DataFrame({0:range(5), 1:range(5,10)})
In[]: df

Out[]:
   0  1
0  0  5
1  1  6
2  2  7
3  3  8
4  4  9

In[]: for index, row in df.iterrows():
          print(row.to_list())

Out[]:
[0, 5]
[1, 6]
[2, 7]
[3, 8]
[4, 9]


推荐阅读