【发布时间】:2019-10-21 16:02:16
【问题描述】:
我有一个数据框,我想根据不同的条件删除重复项......
A B
0 1 1.0
1 1 1.0
2 2 2.0
3 2 2.0
4 3 3.0
5 4 4.0
6 5 5.0
7 - 5.1
8 - 5.1
9 - 5.3
我想删除 A 列中的所有重复项,但带有“-”的行除外。在此之后,我想从列 A 中删除重复项,并根据其列 B 值使用“-”作为值。给定输入数据框,这应该返回以下内容:-
A B
0 1 1.0
2 2 2.0
4 3 3.0
5 4 4.0
6 5 5.0
7 - 5.1
9 - 5.3
我有以下代码,但是对于大量数据来说效率不是很高,我该如何改进......
def generate(df):
str_col = df[df["A"] == "-"]
df.drop(df[df["A"] == "-"].index, inplace=True)
df = df.drop_duplicates(subset="A")
str_col = b.drop_duplicates(subset="B")
bigdata = df.append(str_col, ignore_index=True)
return bigdata.sort_values("B")
【问题讨论】:
-
在您给定的示例中,
df.drop_duplicates()会完成相同的操作。 -
你会怎么做,看看我是 Pandas 的新手