Python Pandas 丢弃连续的数据帧,但末尾的句点 (.) 是区分符

Python Pandas Drop Consecutive Data Frames but Period (.) at the End is the Differentiator

您好,我的 pandas 数据框有一部分重复,但差异很小。

唯一的区别是末尾有一个句点。

Header A
First
First.

我只想删除没有句点的重复行。

首先按 Header A 排序,然后删除最后一个 . 并按 Series.duplicated:

获取最后一个重复值
print (df)
  Header A
0   First.
1    First
2   First.
3  Second.
4   Second
5    Third
6    Third


df1 = df.sort_values('Header A')
df1 = df1[~df1['Header A'].str.rstrip('.').duplicated(keep='last')]
print (df1)
  Header A
2   First.
3  Second.
6    Third

如果需要优先考虑没有 . 的值:

df1 = df.sort_values('Header A')
df2 = df1[~df1['Header A'].str.rstrip('.').duplicated()]
print (df2)
  Header A
1    First
4   Second
5    Third

或尝试 loc:

>>> x = df['Header A'].str.split('.', expand=True)
>>> df.loc[x[0].duplicated(keep=False) & x[1].isna()]
  Header A
0    First
>>>