Pandas将每行与引用行进行比较,只引用某些列

2024-04-23 06:43:32 发布

您现在位置:Python中文网/ 问答频道 /正文


Tags: python
2条回答

首先,我将创建一个包含条件集的字典,其中的键可以用作range_name_list列表的索引:

conditions = {0: list('DFA'),
              1: list('ACEF'),
              2: list('CEF'),
              3: list('ABDF'),
              4: list('DEF'),
              5: list('AC'),
              6: list('ABCDE')}

下面的代码将完成我理解为您的任务:

^{pr2}$

请尝试以下代码:

df = pd.read_csv(BytesIO(txt), delim_whitespace=True)
df_base = df[df['Oscillops_read'] == 'Last_Week']
df_base_val = df_base.mean(axis=0)
columns = ['DFA', 'ACEF', 'CEF', 'ABDF', 'DEF', 'AC', 'ABCDE']
range_name_list = ['Base','Curnt','Prediction','Graph','Swg','Barometer_Output','Test_Cntr']

ranges = pd.Series(["NOT_IN_RANGE" for _ in range(df.shape[0])], index=df.index)

for name, cols in zip(range_name_list, columns):
    cols = list(cols)
    idx = df.index[(df[cols] > df_base_val[cols]).all(axis=1)]
    ranges[idx] = name

print ranges

但是我不知道如果一行有多个范围匹配,你想要什么。在

相关问题 更多 >