我有一个非常大的pandas.Dataframe数据框,想要通过选择其中一行具有特定值的所有列来创建一个新的数据框。
A B C D E \nRegion Nord S\xc3\xbcd West Nord Nord\nvalue 2.3 1.2 4.2 0.5 1.3\nvalue2 20 400 30 123 200\nRun Code Online (Sandbox Code Playgroud)\n现在我想创建一个新的 DataFrame,其中包含行“Region”的值为“Nord”的所有列。
\n如何做呢?结果应该是这样的:
\n A D E\nRegion Nord Nord Nord\nvalue 2.3 0.5 1.3\nvalue2 20 123 200\nRun Code Online (Sandbox Code Playgroud)\n提前致谢
\n使用第一个通过掩码DataFrame.loc选择所有行( )由另一个选择的行::Regionloc
df = df.loc[:, df.loc[\'Region\'] == \'Nord\']\nprint (df)\n A D E\nRegion Nord Nord Nord\nvalue 2.3 0.5 1.3\nvalue2 20 123 200\nRun Code Online (Sandbox Code Playgroud)\n更好的是由带有原始列的第一行创建MultiIndex,然后可以通过以下方式选择DataFrame.xs:
df.columns = [df.columns, df.iloc[0]]\ndf = df.iloc[1:].rename_axis((None, None), axis=1)\nprint (df)\n A B C D E\n Nord S\xc3\xbcd West Nord Nord\nvalue 2.3 1.2 4.2 0.5 1.3\nvalue2 20 400 30 123 200\nRun Code Online (Sandbox Code Playgroud)\nprint (df.xs(\'Nord\', axis=1, level=1))\n A D E\nvalue 2.3 0.5 1.3\nvalue2 20 123 200\n\n\nprint (df.xs(\'Nord\', axis=1, level=1, drop_level=False))\n A D E\n Nord Nord Nord\nvalue 2.3 0.5 1.3\nvalue2 20 123 200\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
4200 次 |
| 最近记录: |