逐行循环 Pandas 数据框,并将数据框的值作为文件名的一部分
Loop through a Pandas dataframe row by row and Include value of the dataframe as part of the file name
我正在尝试导出数据框的每一行以生成单独的 csv 文件。我创建了一个循环来遍历每一行。文件名将相应行的货币值+当前日期作为文件名。我在数据框中有 4 行,并期望有四个 csv 文件输出。例如,对于 GBP,结果应生成类似“GBP_20220326.csv”的文件名,而 csv 文件内容将有两个值“GBP,1.232”。
关于如何获取货币值(例如,GBP 成为文件名的一部分),我坚持了一点。如果有人能给我一些指导,我将不胜感激。非常感谢。
>import numpy as np
>import pandas as pd
>from datetime import datetime
>rate = {"Currency":["EUR","GBP","JPY","AUD"],
"Rate":[1.11,1.232,120,0.73],
}
>df = pd.DataFrame(rate)
>df
>for i in range(0, len(df)):
> df.iloc[i:i+1].to_csv(df.iloc[0] + datetime.now().strftime("%Y%m%d") + '.csv', index=False, header=True)
#最后一行未按计划运行。
尝试使用 df.iterrows
:
today = date.today().strftime('%Y%m%d')
for _, row in df.iterrows():
row.to_frame().T.to_csv(f"{row['Currency']}_{today}.csv", index=None)
输出:
>>> %cat EUR_20220326.csv
Currency,Rate
EUR,1.11
>>> %cat GBP_20220326.csv
Currency,Rate
GBP,1.232
我正在尝试导出数据框的每一行以生成单独的 csv 文件。我创建了一个循环来遍历每一行。文件名将相应行的货币值+当前日期作为文件名。我在数据框中有 4 行,并期望有四个 csv 文件输出。例如,对于 GBP,结果应生成类似“GBP_20220326.csv”的文件名,而 csv 文件内容将有两个值“GBP,1.232”。
关于如何获取货币值(例如,GBP 成为文件名的一部分),我坚持了一点。如果有人能给我一些指导,我将不胜感激。非常感谢。
>import numpy as np
>import pandas as pd
>from datetime import datetime
>rate = {"Currency":["EUR","GBP","JPY","AUD"],
"Rate":[1.11,1.232,120,0.73],
}
>df = pd.DataFrame(rate)
>df
>for i in range(0, len(df)):
> df.iloc[i:i+1].to_csv(df.iloc[0] + datetime.now().strftime("%Y%m%d") + '.csv', index=False, header=True)
#最后一行未按计划运行。
尝试使用 df.iterrows
:
today = date.today().strftime('%Y%m%d')
for _, row in df.iterrows():
row.to_frame().T.to_csv(f"{row['Currency']}_{today}.csv", index=None)
输出:
>>> %cat EUR_20220326.csv
Currency,Rate
EUR,1.11
>>> %cat GBP_20220326.csv
Currency,Rate
GBP,1.232