相关疑难解决方法(0)

Pandas:从数据框中删除反向重复项

我有一个包含两列的数据框,AB.在这种情况下,顺序A和顺序B并不重要; 例如,我会考虑(0,50)(50,0)重复.在pandas中,从数据框中删除这些重复项的有效方法是什么?

import pandas as pd

# Initial data frame.
data = pd.DataFrame({'A': [0, 10, 11, 21, 22, 35, 5, 50], 
                     'B': [50, 22, 35, 5, 10, 11, 21, 0]})
data
    A   B
0   0  50
1  10  22
2  11  35
3  21   5
4  22  10
5  35  11
6   5  21
7  50   0

# Desired output with "duplicates" removed. 
data2 = pd.DataFrame({'A': [0, 5, …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

9
推荐指数
2
解决办法
1288
查看次数

检查列表是否是熊猫数据框中另一个列表的子集

所以,我有这个包含近 3000 行的数据框,看起来像这样:

        CITIES
0       ['A','B']
1       ['A','B','C','D']
2       ['A','B','C']
4       ['X']
5       ['X','Y','Z']
...     ...
2670    ['Y','Z']
Run Code Online (Sandbox Code Playgroud)

我想从 DF 中删除“CITIES”列表包含在另一行中的所有行(顺序无关紧要),在上面的示例中,我想删除 0 和 2,因为两者都包含在 1 中,并删除 4 和 2670,因为两者都包含在内,我尝试了一些东西,它有点工作,但它真的很愚蠢,花了将近 10 分钟来计算,就是这样:

indexesToRemove=[]
for index, row in entrada.iterrows():
    citiesListFixed=row['CITIES']
    for index2, row2 in entrada.iloc[index+1:].iterrows():
        citiesListCurrent=row2['CITIES']
        if set(citiesListFixed) <= set(citiesListCurrent):
            indexesToRemove.append(index)
            break
Run Code Online (Sandbox Code Playgroud)

有没有更有效的方法来做到这一点?

python pandas

4
推荐指数
1
解决办法
88
查看次数

标签 统计

pandas ×2

python ×2

dataframe ×1