我有一个这样的MultiIndex Pandas DataFrame:
+---+------------------+----------+---------+--------+-----------+------------+---------+-----------+
| | VECTOR | SEGMENTS | OVERALL | INDIVIDUAL |
| | | | TIP X | TIP Y | CURVATURE | TIP X | TIP Y | CURVATURE |
| 0 | (TOP, TOP) | 2 | 3.24 | 1.309 | 44 | 1.62 | 0.6545 | 22 |
| 1 | (TOP, BOTTOM) | 2 | 3.495 | 0.679 | 22 | 1.7475 | 0.3395 | 11 |
| 2 | (BOTTOM, TOP) | 2 | 3.495 | -0.679 | -22 | 1.7475 | -0.3395 | -11 |
| 3 | (BOTTOM, BOTTOM) | 2 | 3.24 | -1.309 | -44 | 1.62 | -0.6545 | -22 |
+---+------------------+----------+---------+--------+-----------+------------+---------+-----------+
如何根据'OVERALL'
或'INDIVIDUAL'
下包含的所有列删除重复项?因此,如果我选择'INDIVIDUAL'
从TIP X
下的TIP Y
,CURVATURE
和INDIVIDUAL
的值中删除重复项,则必须全部匹配才能使其成为重复项?
此外,从表1
和2
可以看出,它们是重复项,它们只是沿x轴镜像。这些也必须删除。
还可以将OVERALL
和INDIVIDUAL
的标题居中吗?
编辑:frame.drop_duplicates(subset=['INDIVIDUAL'], inplace=True)
产生KeyError: Index(['INDIVIDUAL'], dtype='object')
答案 0 :(得分:1)
您可以为多索引列传递熊猫setInterval(() => {
generalchannel.send("")
}, 5000);
元组的子集:
.drop_duplicates
或者,如果您的行索引是唯一的,则可以使用以下方法来节省一些输入:
df.drop_duplicates(subset=[
('INDIVIDUAL', 'TIP X'),
('INDIVIDUAL', 'TIP Y'),
('INDIVIDUAL', 'CURVATURE')
])
更新:
如注释中所建议,如果要对数据框进行操作,则可以内联进行:
df.loc[df['INDIVIDUAL'].drop_duplicates().index]
或者对于非熊猫功能,可以使用df.loc[df['INDIVIDUAL'].abs().drop_duplicates().index]
:
.transform