Pandas根据唯一列值拆分数据框

3
我有一个Dataframe,正在输出到名为“所有数据”的电子表格中。假设此数据包含业务地址(街道、城市、邮政编码、州的列)。然而,我还想创建一个工作表,其中包含每个唯一州相同的列。
我的基本想法是使用df.iterrows()遍历每一行,并通过将其附加到新的Dataframe中来对Dataframe进行划分,但这似乎非常低效。有更好的方法吗?
我发现这个答案,但那只是一个布尔索引。

你试过用groupby()吗? - undefined
2个回答

10

在另一个问题中的groupby答案也适用于您。 在您的情况下,类似以下内容:

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

这使用列表推导式返回数据框的列表,每个州都有一个数据框。


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()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接