导出多个csv文件,只包含原始数据框架中包含相同ID值的记录

1 人关注

我想从一个csv文件中创建单独的数据框,每一行有相同的ID到一个新的数据框(或csv文件)......除非我打开包含成千上万ID的csv文件,否则ID的列表是未知的......。我不一定需要每个ID单独的数据框架,但我需要每个ID单独的csv文件......csv可以以批处理命名,并保存在与df1源相同的文件路径中。

df1source: ID A B 0 B345 男性 12 1 B980 女 34 2 B980 女 44 3 B345 雌性 04 4 B456 男 78

输入pandas作为pd

df1 = pd.read_csv(r "C:file\path\df1source.csv")

desired output:

df2 = ID A B 0 B345 男性 12 1个B345内螺纹04

df3 = ID A B 0 B980 女性 34 1 B980 女性 44

df4 = ID A B 0 B456坏78

1 个评论
正确显示你的代码
python
pandas
dataframe
loops
csv
Dave66
Dave66
发布于 2022-07-16
1 个回答
Andrew
Andrew
发布于 2022-07-16
已采纳
0 人赞同

你可以用类似于numpy的方式屏蔽你的DataFrame。替换代码0】或 mask = df.<column>==<value> ,用 df[mask] 屏蔽你的DataFrame。

Example

import pandas as pd
l = 10
df = pd.DataFrame({'ID': np.arange(l)%4,  # %4 to get 4 IDs
                   'y': np.random.random(l)})
df_id_list = []
for i in df.ID.unique():
    df_id_list.append(df[df.ID==i])
df_id_list[0]

Alternative if IDs are unique anyhow

如果你的ID是唯一的,可能没有必要将DataFrame分割成ID。每个ID由DataFrame的一行表示,即一个 pd.Series 。为了通过ID访问某一行,你可以将ID列设为索引。

l = 10
df = pd.DataFrame({'ID': np.arange(l)**2, 'y': np.arange(l)})