下面是我的dataframe的一个示例:
df = pd.DataFrame([['In', 'Age', 'Nat.'],
['Jakub Kiwior', 22, 'Poland'],
['Leandro Trossard', 28, 'Belgium'],
['Jorginho', 31, 'Italy'],
['Out', 'Age', 'Nat.'],
['Jhon Durán', 19, 'Colombia'],
['In', 'Age', 'Nat.'],
['Jhon Durán', 19, 'Colombia'],
['Álex Moreno', 29, 'Spain'],
['Out', 'Age', 'Nat.'],
['Leandro Trossard', 28, 'Belgium'],
['Jorginho', 31, 'Italy'],
['In', 'Age', 'Nat.'],
['Out', 'Age', 'Nat.'],
['In', 'Age', 'Nat.'],
], columns=['Player', 'Age', 'Nat.'])
我的desired output是一个 Dataframe ,如果上面的行(不一定是直接在上面)在“Player”列中的值为“Out”,则删除重复行。
例如,期望的输出将移除第一“JhonDurán”行,以及第二“LeandroTrossard”和“Jorginho”行,因为这些行上面是“Out”而不是“In”.
这在Pandas身上可能实现吗?
4条答案
按热度按时间nr9pn0ug1#
使用布尔索引:
输出:
c3frrgcw2#
你可以使用Pandas转移方法来帮助实现这一点。
然后,只需使用您选择的单词过滤掉新列中的任何值:
guicsvcw3#
增加一个额外的列"out/in"或者其他的方式来存储你的数据会更有好处。如果我们看一下标题"player",它应该只有player在里面;"out"或"in"不是该列的相关数据条目。确保创建干净且易于操作的数据非常重要。
一旦我们添加了一个新的列"出局/入局",我们就可以轻松地更改球员的状态并丢弃出局的球员。
下面是上面应用的。注意添加的
status
列:以下是原始数据框:
如果我们想将播放器从
in
更改为out
:这就给了我们:
如果我们想删除 Dataframe 中的所有球员:
这就给了我们:
这将创建一个新的df,其中只有"in"玩家。这允许我们访问一个过滤视图(
in_players_df
),以及一个所有玩家的视图(df
),而不考虑in/out。如果我们使用df=...
,它将更改原始 Dataframe 。这取决于您的目标:)1szpjjfi4#
我相信这就是你要找的:
输出: