使用字典比较不同列中的行值

时间:2019-01-24 20:33:23

标签: python pandas

我尝试遍历两列,并将Pin列的数据与Adj中每个单独的数字进行比较。列,如果匹配则抛出标志。第0行引脚仅需与第0行调整中的每个数字进行比较。我创建了一个词典,其中每个数字都对应一种颜色,其中多个数字是相同的颜色。如果“固定”列中的“颜色”与调整中的“颜色”相匹配。我想做一个基本的打印语句。我遇到的问题是使用字典比较值。

Table
Sample Spreadsheets Being Used

import pandas as pd


excel_file = r'C:\Users\449287\Documents\Sample.adjacent.xlsx'
excel_file1 = r'C:\Users\449287\Documents\Sample.Pin.Out.xlsx'

df = pd.read_excel(excel_file, sheetname='Sheet1')
df1 = pd.read_excel(excel_file1, sheetname='Sheet1')


df1d = {1: "R",2: "O",3: "Y", 4: "GR", 5: "L", 6: "R", 7: "B", 8: "L", 9: "GR", 10: "O"}
"""
df1.set_index('Pin')['Color'].to_dict()
"""
df['Adj.'] = df['Adj.'].str.replace(',', ' ')

1 个答案:

答案 0 :(得分:1)

首先,您需要一个代码来比较“调整”中的值。具有相同颜色值的列。您可以将其放在函数中:

def check_color(dictionary, value, adj_values):
    for x in adj_values.split():
        if int(x) in [k for k, v in dictionary.items() if v == dictionary[value]]:
            print('Your statement')
            return

现在,您只需要遍历各行,并为每行调用上面的函数以获取参数(您已经声明的字典,“ Pin”列中的值和“ Adj。”列中的值):

for index, row in df.iterrows():
    check_color(df1d, row['Pin'], row['Adj.'])

希望这会有所帮助。如果您有任何疑问,请随时提问。