Iza*_*ert 5 python dataframe pandas
我有一个 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 |
+---+------------------+----------+---------+--------+-----------+------------+---------+-----------+
Run Code Online (Sandbox Code Playgroud)
如何根据'OVERALL'或下包含的所有列删除重复项'INDIVIDUAL'?因此,如果我选择从、和under'INDIVIDUAL'的值中删除重复项,则必须全部匹配才能使其成为重复项?TIP XTIP YCURVATUREINDIVIDUAL
此外,正如您从表中看到的那样1, 和2是关于 x 轴简单镜像的重复项。这些也必须被丢弃。
另外,我可以将OVERALL和INDIVIDUAL标题居中吗?
编辑:frame.drop_duplicates(subset=['INDIVIDUAL'], inplace=True)产生KeyError: Index(['INDIVIDUAL'], dtype='object')
您可以向 pandas 传递.drop_duplicates多索引列的元组子集:
df.drop_duplicates(subset=[
('INDIVIDUAL', 'TIP X'),
('INDIVIDUAL', 'TIP Y'),
('INDIVIDUAL', 'CURVATURE')
])
Run Code Online (Sandbox Code Playgroud)
或者,如果您的行索引是唯一的,您可以使用以下方法来节省一些输入:
df.loc[df['INDIVIDUAL'].drop_duplicates().index]
Run Code Online (Sandbox Code Playgroud)
更新:
正如您在评论中所建议的,如果您想对数据框进行操作,您可以在线执行此操作:
df.loc[df['INDIVIDUAL'].abs().drop_duplicates().index]
Run Code Online (Sandbox Code Playgroud)
或者对于非 pandas 函数,您可以使用.transform:
df.loc[df['INDIVIDUAL'].transform(np.abs).drop_duplicates().index]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5313 次 |
| 最近记录: |