【问题标题】:How to generate a CSV file for a loop output data?如何为循环输出数据生成 CSV 文件?
【发布时间】:2022-01-23 19:42:57
【问题描述】:

我有一个生成以下输出的 API:

这是一个数据框“Fruits_Color”

    Fruits   Color
 0  Apple    Red
    Fruits   Color
 0  Banana   Yellow
    Fruits   Color
 0  Grapes   Black 

如何生成如下所示的 CSV(所需输出):

    Fruits   Color
    Apple    Red 
    Banana   Yellow
    Grapes   Black 

我试过这个:

df = pd.DataFrame(Fruits_Color)
print(df)
df.to_csv('Fruits.csv', index = FALSE)

输出:

    Fruits   Color
 0  Apple    Red

我应该使用for循环还是有其他方法?

提前致谢:)

【问题讨论】:

  • 看起来这些是三个单独的数据帧,因为列显示了 3 次,并且您有 3x 索引 0。可能是这种情况吗?如果是这样,您可以先连接数据帧,然后再导出到 csv。
  • 是的,这是 3 个不同的数据帧,我想我需要先组合,对吧?但是,如果我有 100 个数据框怎么办?
  • 取决于 API 如何提供数据帧。它们是分批来的吗?是一次一个数据帧吗?
  • API 一次一个数据帧,我目前生成了 120 多个小数据帧。
  • 我已经更新了我的答案,并用 for 循环做了一个例子。

标签: python pandas api csv


【解决方案1】:

为了模拟 API,我制作了三个数据帧并使用了一个 for 循环。我使用 df1、df2 和 df3 作为示例名称,因为描述中没有给出您的数据框的名称。确保在 API 之前声明 export_df,然后在第一个 API 结果出现时,将 export_df 设置为该数据帧。之后出现的所有其他数据帧都可以连接到第一个数据帧。

df1 = pd.DataFrame({
    'Fruits':['Apple'],
    'Colors':['Red']
    })

df2 = pd.DataFrame({
    'Fruits':['Banana'],
    'Colors':['Yellow']
    })

df3 = pd.DataFrame({
    'Fruits':['Grapes'],
    'Colors':['Black']
    })

frames = [df1,df2,df3]

export_df = None
for df in frames:
    if export_df is None:
        export_df = df1
    else:
        export_df = export_df.append(df,ignore_index=True)


export_df = pd.concat(frames,ignore_index=True)
export_df.to_csv('Fruits.csv', index = False)

【讨论】:

    猜你喜欢
    • 2019-04-09
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-20
    相关资源
    最近更新 更多