【问题标题】:Python: Writing to CSV file from iterating through Pandas DataframePython:通过 Pandas Dataframe 迭代写入 CSV 文件
【发布时间】:2018-10-12 18:50:45
【问题描述】:

我是 Python 新手。如何在遍历 DataFrame 时写入 CSV 文件?

readCSV1 = pd.read_csv(r'ProductDetails1.csv')
df1 = DataFrame(readCSV1)

for index, row in df1.iterrows():
print(index, row['SKU'], row['SKU'],row['Title'],row['Cost'],row['Weight 
    Value'],row['Weight Unit']...............)

我正在遍历一个包含许多列的大型 csv 文件,但是我希望能够限制最终 csv 文件中的列以及放入其他参数。控制台的打印输出是正确的,但是我无法弄清楚如何最好地将其打印到新的 csv 文件,因为我将执行许多其他功能并且不想简单地编辑数据框本身。

【问题讨论】:

  • 您不应逐行写入 csv 文件。这是非常低效的。您应该将数据框清理/限制为要写入的内容,然后一次调用pd.DataFrame.to_csv()pandas.pydata.org/pandas-docs/stable/generated/…
  • 问题是我需要遍历每一行,因为某些变量可能会影响它下面的项目。
  • 那么你应该在读入数据帧后对它执行这些操作,然后回写一次。如果您对该逻辑的特定部分有疑问,那么您应该更新您的问题以反映这些问题。

标签: python pandas csv dataframe


【解决方案1】:

您不应逐行写入 csv 文件。这是非常低效的。您应该将数据框清理/限制为您要写入的内容,然后一次调用pd.DataFrame.to_csv()

例如:

df = pd.read_csv(r'ProductDetails1.csv')

#Refine your dataframe here
refined_df = df[['SKU','Title','Close','Weight Value','Weight Unit']]

refined_df.to_csv(r'ProductDetails1.csv', index=False)

【讨论】:

    【解决方案2】:

    我希望能够将最终 csv 文件中的列限制为 以及提出其他论点。

    不要在编写 CSV 文件时进行这些调整导出到 CSV 之前,对数据框本身进行调整。然后使用专用的pd.DataFrame.to_csv 方法。

    例如,您可以在导出前按特定顺序选择特定列:

    df = df[['SKU', 'SKU', 'Title', 'Cost']]
    df.to_csv('file.csv', index=False)
    

    要“放入其他参数”,请通过适当的逻辑创建新列。

    【讨论】:

    • 我还需要实现条件逻辑来确定我的一列的内容,如何在数据框中最好地实现它?
    • @TonaldDrump,我真的无法回答如此有限的信息。我建议你阅读 Pandas 教程;并且,如果您仍然被卡住并且无法在 SO 上找到答案,ask a new question
    猜你喜欢
    • 2013-05-31
    • 2014-02-07
    • 1970-01-01
    • 2018-10-13
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多