使用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中选择和删除具有重复名称的列