【发布时间】:2022-11-15 00:59:07
【问题描述】:
我有一个简单的数据框,我想在某些条件下将其分开。
| Car | Year | Speed | Cond |
|---|---|---|---|
| BMW | 2001 | 150 | X |
| BMW | 2000 | 150 | |
| Audi | 1997 | 200 | |
| Audi | 2000 | 200 | |
| Audi | 2012 | 200 | X |
| Fiat | 2020 | 180 | |
| Mazda | 2022 | 183 |
我要做的是将副本复制到另一个数据框中,并在我的主数据框中只留下一行。
-
Car列中重复的行我想分成一个单独的数据框,但我不需要cond列中有 X 的行。 - 在主数据框中,我想保留一行。我希望左行是在
cond列中包含 X 的行
我有代码:
import pandas as pd
import numpy as np
cars = {'Car': {0: 'BMW', 1: 'BMW', 2: 'Audi', 3: 'Audi', 4: 'Audi', 5: 'Fiat', 6: 'Mazda'},
'Year': {0: 2001, 1: 2000, 2: 1997, 3: 2000, 4: 2012, 5: 2020, 6: 2022},
'Speed': {0: 150, 1: 150, 2: 200, 3: 200, 4: 200, 5: 180, 6: 183},
'Cond': {0: 'X', 1: np.nan, 2: 'X', 3: np.nan, 4: np.nan, 5: np.nan, 6: np.nan}}
df = pd.DataFrame.from_dict(cars)
df_duplicates = df.loc[df.duplicated(subset=['Car'], keep = False)].loc[df['Cond']!='X']
我不知道如何让主数据框只剩下一行在cond 列中另外包含X
也许有一个命令可以根据上述规则删除并选择另一个数据框?
【问题讨论】:
-
抱歉,逻辑不清楚,如果你有一个 X 你想把它保持为主,否则任何行?其余的转到另一个 DataFrame?您能否为两个 DataFrame 提供明确的输出?
-
我在
Car列中有重复项,我希望将它们删除(并同时移动到另一个数据框)那些在cond中没有 X 的重复项