【问题标题】:how to compare variable in different columns pandas如何比较不同列熊猫中的变量
【发布时间】:2022-11-28 00:49:10
【问题描述】:

我想比较三个数据框列中的三个变量。但它给了我一个错误TypeError:无法散列的类型:“系列”.下面是我的代码

import pandas as pd
df = pd.DataFrame(columns=['Entry','Middle','Exit'])
entry_value = '17.98'
middle_value = '12.16'
exit_value = '1.2'
df = df.append({'Entry' : entry_value , 'Middle' : middle_value, 'Exit' : exit_value}, ignore_index = True)
entry_value = '19.98'
middle_value = '192.16'
exit_value = '1.1'
if entry_value in {df['Entry'] , df['Middle'] , df['Exit']} :
    print('entry')
elif middle_value in {df['Entry'] , df['Middle'] , df['Exit']} :
    print('middle')
elif exit_value in {df['Entry'] , df['Middle'] , df['Exit']} :
    print('exit')
else:
    print('wawo')`

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    您可以搜索一列,但如果要搜索多列,则必须将它们转换为单个列表或将它们定义为单个系列。

    if entry_value in df[['Entry','Middle','Exit']].stack():
        print('entry')
    elif middle_value in df[['Entry','Middle','Exit']].stack():
        print('middle')
    elif exit_value in df[['Entry','Middle','Exit']].stack():
        print('exit')
    else:
        print('wawo')
    

    如果要搜索所有列,则不需要定义单独的列名:

    #dont use
    #df[['Entry','Middle','Exit']].stack()
    
    #use
    df.stack()
    

    【讨论】:

    • 我试过entry_value = '17.98',它已经在上面定义的列表中,但它没有用。它直接来到else。应该打印entry
    猜你喜欢
    • 1970-01-01
    • 2017-12-14
    • 2017-03-28
    • 2021-10-08
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    相关资源
    最近更新 更多