熊猫按唯一列值拆分数据框

时间:2020-06-11 18:12:19

标签: python pandas dataframe

我有一个数据框,该数据框正在输出到名为“所有数据”的电子表格。假设此数据包含公司地址(街道,城市,邮政编码,州的列)。但是,我还想为包含唯一相同列的每个唯一状态创建一个工作表。

我的基本想法是使用df.iterrows()遍历每一行,并通过将其追加到新的数据帧中来分割数据帧,但这似乎效率很低。有更好的方法吗?

我发现了this answer,但这只是一个布尔值索引。

2 个答案:

答案 0 :(得分:2)

一种简单的方法是获取唯一状态,然后过滤掉它们并将其保存为单独的CSV或在此之后进行任何其他操作

这是一个例子:

# df[column].unique() returns a list of unique values in that particular column
for state in df['state'].unique():
    # Filter the dataframe using that column and value from the list
    df[df['state']==state].to_csv()

答案 1 :(得分:2)

groupby在另一个问题上的答案也将为您服务。就您而言,类似:

df_list = [d for _, d in df.groupby(['state'])]

这使用列表推导返回一个数据框列表,每个状态一个数据框。