将DataFrame中出现过一次的行进行删除;两个DataFrame求交集、求差

import pandas as pd  # 导入包
data = pd.DataFrame({
    'a':[1,1,3,5],
    'b':[1,2,3,4],
    'c':[1, 3, 5, 6]
})  #创建一个表

将DataFrame中出现过一次的行进行删除;两个DataFrame求交集、求差
a = list(data["a"].value_counts())  # 获取a列不同数值出现的个数

将DataFrame中出现过一次的行进行删除;两个DataFrame求交集、求差
b = list(data["a"].value_counts().index)  # 获取出现个数的具体数

将DataFrame中出现过一次的行进行删除;两个DataFrame求交集、求差
y = []
for i,j in enumerate(a):
        if j == 1:
                index = data.loc[data.a==b[i]].index.to_list()
                y.append(index[0])
                sec_data = data.loc[y] # 找到表格中只出现过一行的数据,组成sec_data

将DataFrame中出现过一次的行进行删除;两个DataFrame求交集、求差

data – sec_data两个DataFrame进行相减,如下

data_1 = pd.concat([data, sec_data, sec_data]).drop_duplicates(keep=False)
data_1  # 两个dataframe进行求差

将DataFrame中出现过一次的行进行删除;两个DataFrame求交集、求差

这样就可以把出现过一次记录的行全部删除了;下面内容是两个DataFrame求交集

data_2 = pd.merge(sec_data, data, how='inner')
data_2  # 两个dataframe求交集

本人水平有限,想到的思路目前是这样的,后续如有更好的方法会再进行改进,也希望读者批评指正!

Original: https://blog.csdn.net/m0_51099057/article/details/122342642
Author: 小杨的海洋
Title: 将DataFrame中出现过一次的行进行删除;两个DataFrame求交集、求差

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/674896/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球