【问题标题】:Extract DataFrame from duplicated values从重复值中提取 DataFrame
【发布时间】:2021-05-19 08:21:16
【问题描述】:

我有一个 DataFrame,其中有一列存储了与不同数据相关的更多重复项。

A B
1 120 abc
2 121 def
3 122 ghi
4 121 abc
5 120 def
6 121 def
7 122 abc
8 121 ghi
.. ... ...

我不知道 A 中重复的数量以及它们是谁,但我需要为每个重复提取 n-DataFrame,如下所示:

A B
1 120 abc
2 120 def
.. ... ...
A B
1 121 def
2 121 abc
3 121 def
4 121 ghi
.. ... ...
A B
1 122 ghi
2 122 abc
.. ... ...

我该怎么做? 也许我可以使用duplicated,但我不清楚我是否必须在我的情况下使用它。

【问题讨论】:

  • 只需根据唯一键{k : v for k,v in df.groupby('A')}创建一个字典

标签: python pandas dataframe


【解决方案1】:

尝试:

df_list = [k for _,k in df.groupby('A')]

输出:

[     A    B
 1  120  abc
 5  120  def,
      A    B
 2  121  def
 4  121  abc
 6  121  def
 8  121  ghi,
      A    B
 3  122  ghi
 7  122  abc]

如果您还想reset the indexeach dataframe,请使用以下代码。

df_list = [k.reset_index(drop=True) for _,k in df.groupby('A')]

如果需要 group_names,可以使用dict comprehension

df_dict = {g:k.reset_index(drop=True) for g,k in df.groupby('A')}

字典输出:

{120:      A    B
0  120  abc
1  120  def,
 121:      A    B
0  121  def
1  121  abc
2  121  def
3  121  ghi,
 122:      A    B
0  122  ghi
1  122  abc}

【讨论】:

    猜你喜欢
    • 2017-09-29
    • 2021-06-03
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 2019-11-02
    • 1970-01-01
    • 2020-02-02
    • 2012-10-07
    相关资源
    最近更新 更多