使用python选择具有相同索引的dataFrame中的行

Posted

技术标签:

【中文标题】使用python选择具有相同索引的dataFrame中的行【英文标题】:Select rows in dataFrame with the same index using python 【发布时间】:2017-10-12 08:35:00 【问题描述】:

我想问你,如何在 DataFrame 中选择具有相同索引号的行。示例:

df=

  A, B, C,
0 1. 2. 1.
1 2. 2. 2. 
2 2. 2. 2. 
3 3. 3. 4.
  A, B, C,
0 1. 2. 1.
1 2. 2. 2. 
2 2. 2. 0. 
3 3. 3. 4.
  A, B, C,
0 1. 2. 1.
1 2. 2. 2. 
2 0. 2. 2. 
3 3. 3. 4.

我希望:

df1=

   A, B, C,
 2 2. 2. 2. 
 2 2. 2. 0. 
 2 0. 2. 2. 

我正在使用df.loc[2],但只显示第一组数据。也使用了df1=df.set_index(['2']),也不起作用。提前致谢!

【问题讨论】:

索引中不能有重复项。 你能粘贴 df.index 和 df.columns 的输出吗 磨损了,我的df.index= Out[101]: RangeIndex(start=0, stop=874, step=1) 但我可以看到可变长度的索引 [1,2,3,4,5,,1,2,3,,1,2,3... ] 我的专栏的输出是:Index(['Unnamed: 0', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34' 您能粘贴示例输入和示例输出以及代码吗?到目前为止,您在解决问题方面做了哪些尝试? 【参考方案1】:

索引可能有重复。特别是当您连接不同的数据帧时。 使用它根据您的索引过滤数据:

df1 = df[df.index==2]

【讨论】:

【参考方案2】:

看起来您需要按索引值分组:

df1 = df.groupby(df.index).get_group(2)
df1
#   A  B  C
#2  2  2  2
#2  2  2  0
#2  0  2  2

【讨论】:

对我不起作用!我只得到第一个 请更新原始问题以包含 df 的正确定义(他们现在输入的方式,它不是有效的 Pandas 数据框;我假设它有 12 行,3 列 A, B、C 和重复索引)。

以上是关于使用python选择具有相同索引的dataFrame中的行的主要内容,如果未能解决你的问题,请参考以下文章

将具有相同列/索引的两个 pandas DataFrame 合并为一个 DataFrame

循环并合并具有相同索引、相同列的 DataFrame(但是每个 DataFrame 有几列唯一)

如何在pandas DataFrame中选择和删除具有重复名称的列

Python Pandas - 如何在具有不同级别数的索引上加入 DataFrames?

训练具有相同索引的测试拆分

熊猫合并具有相同值和相同索引的行