将 Python 的数字列表与 Pandas 数据框进行比较

问题描述 投票:0回答:1

我有一个 Pandas 的数据框,有 9 列(仅称为数据框),其中 5 列称为:[['DEG1','DEG2','DEG3','DEG4','DEG5']],它有近 2000 行。我有一个列表,从中构建另一个包含 5 列的数据框,名为 [['deg1','deg2','deg3','deg4','deg5']],该数据框只有 1 行包含需要的数据系列要在其他数据框中检查。

我需要检查小数据帧(n_serie_df)中的整个系列(5列)是否在大数据帧中重复,这里是我的实际状态,它给我:“ValueError:项目错误长度1而不是1709。” .

这是我的实际代码:

import pandas as pd
import numpy as np


def check_repeated_deg(n_serie_list, dataframe):
    n_serie_dict = {
        "DEG1": [n_serie_list[0]],
        "DEG2": [n_serie_list[1]],
        "DEG3": [n_serie_list[2]],
        "DEG4": [n_serie_list[3]],
        "DEG5": [n_serie_list[4]],
    }

    n_serie_df = pd.DataFrame(n_serie_dict)

    repeated = dataframe[np.all(n_serie_df.values == n_serie_df.values, 1)].any().any()

    if repeated:
        return f"This deg serie is already measured"
    else:
        return None


dataframe = pd.read_csv(r"data_deg.csv")
n_serie_list = [2, 11, 21, 27, 41]

result = check_repeated_deg(n_serie_list, dataframe)

print(result)
python pandas list numpy dictionary
1个回答
0
投票

IIUC用途:

repeated = (n_serie_df.values == n_serie_list).all(axis=1).any()
© www.soinside.com 2019 - 2024. All rights reserved.