我尝试遍历两列,并将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(',', ' ')
答案 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.'])
希望这会有所帮助。如果您有任何疑问,请随时提问。