Py学习  »  Python

如何在Python中选择名称相同但值不同的所有行

AxiaoNailo • 4 年前 • 1336 次点击  

假设我有熊猫数据农场看起来是这样的:

    Name  VALUE
0    A      1
1    A      2
2    A      3
3    B      4
4    B      5
5    C      6
6    C      7
7    C      8
8    C      9
9    D     10

我想在下面选择名称相同但值不同的所有行:

    Name  Value
0    A      1
1    A      2
2    A      3


    Name  Value
0    C      6
1    C      7
2    C      8
3    C      9

我试着用。T转换行和列,然后使用。groupby以选择具有相同名称的所有列。但是,有两个问题:第一。groupby不能选择相同的列;其次groupby实际上是用相同的名称在一行中添加所有值,这不是我想要的结果。

然后,我试着使用。重复(keep=False),但这段代码只告诉我数据是否相同。

我应该使用什么代码?事实上我有1000个数据和20多个同名行,从“a”、“B”、“C”、“D”到“Z”。每个名字都有一千个不同的值。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133302
文章 [ 1 ]  |  最新文章 4 年前
Abhyuday Vaish
Reply   •   1 楼
Abhyuday Vaish    4 年前

如果您想获得不同的数据帧,那么以下是您可以做到的:

df_splits = [v for k, v in df.groupby('Name')]
for df_split in df_splits:
    print(df_split, sep = '\n')

输出:

  Name  VALUE
0    A      1
1    A      2
2    A      3
  Name  VALUE
3    B      4
4    B      5
  Name  VALUE
5    C      6
6    C      7
7    C      8
8    C      9
  Name  VALUE
9    D     10

要单独访问数据帧,请使用:

df_splits[0] , df_splits[1] ....