社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

AxiaoNailo • 3 年前 • 1208 次点击  

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

    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 ]  |  最新文章 3 年前
Abhyuday Vaish
Reply   •   1 楼
Abhyuday Vaish    3 年前

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

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] ....