Pandas将数据写入不同的csv文件中。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas将数据写入不同的csv文件中。相关的知识,希望对你有一定的参考价值。

我有一个数据框架,看起来像这样的

  Name      Location  Date      Time  Open  High   Low  Close  Volume  VWAP  Trades
4   Orange  New York  20200501  15:30:00  5.50  5.85  5.45   5.70    1500  5.73      95
5   Orange  New York  20200501  17:00:00  5.65  5.70  5.50   5.60    1600  5.65      54
6   Orange  New York  20200501  20:00:00  5.80  5.85  5.45   5.81    1700  5.73      41
0    Apple  Minsk     20200504  15:30:00  3.70  3.97  3.65   3.75    1000  3.60      55
1    Apple  Minsk     20200504  17:00:00  3.65  3.95  3.50   3.80    1200  3.65      68
2    Apple  Minsk     20200504  20:00:00  3.50  3.83  3.44   3.60    1300  3.73      71

我如何根据 "名称 "和 "位置 "列将每一行写入不同的文件?

希望的输出。

"地点"。"EntitiesNew YorkOrangeTwoHours.csv"

    Name    Location  Date      Time  Open  High   Low  Close  Volume  VWAP  Trades
4   Orange  New York  20200501  15:30:00  5.50  5.85  5.45   5.70    1500  5.73      95
5   Orange  New York  20200501  17:00:00  5.65  5.70  5.50   5.60    1600  5.65      54
6   Orange  New York  20200501  20:00:00  5.80  5.85  5.45   5.81    1700  5.73      41

位置:"Entities/Minsk/Apple/TwoHours.csv "EntitiesMinskAppleTwoHours.csv"

     Name      Location  Date      Time  Open  High   Low  Close  Volume  VWAP  Trades
0    Apple  Minsk     20200504  15:30:00  3.70  3.97  3.65   3.75    1000  3.60      55
1    Apple  Minsk     20200504  17:00:00  3.65  3.95  3.50   3.80    1200  3.65      68
2    Apple  Minsk     20200504  20:00:00  3.50  3.83  3.44   3.60    1300  3.73      71

谁能帮帮我? 我目前使用的代码将整个数据框写入每个文件,而不仅仅是特定的行。

for idx, rows in Dataframe.iterrows():
dest_dir = os.path.join('Entities', rows.Location, rows.Name)
csv_file = os.path.join(dest_dir, 'TwoHours.csv')
if not os.path.exists(csv_file):
    os.makedirs(dest_dir)
    print("Writing .csv's " + str(idx))
    df1.to_csv(csv_file, sep=";", index=False)
答案

这里是可能的循环 DataFrame.groupby 含有解包的对象 nameloc 从元组中提取,必要时创建 folders,最后写组到文件。

for (name, loc), g in Dataframe.groupby(['Name','Location']):

    dest_dir = os.path.join('Entities', loc, name)
    csv_file = os.path.join(dest_dir, 'TwoHours.csv')

    if not os.path.exists(csv_file):
        os.makedirs(dest_dir)

    g.to_csv(csv_file, sep=";", index=False)

以上是关于Pandas将数据写入不同的csv文件中。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python Pandas 将 CSV 文件写入 XLSX?

Python:将列表写入 Pandas 中的列

pandas to_csv:将 pandas 写入 csv 时抑制 csv 文件中的科学记数法

如何将vb中的数据写入csv文件?

使用 Pandas 使用 for 循环写入 Excel CSV

在R语言 中如何把list对象逐行写入csv文件中