У меня есть список значений .csv (C3, H5, HK, HA, SK) (имена столбцов: card1, card2, card3, card4, card5) и я хочу изменить, например, C3, на целочисленное значение со словарем , Допустим, словарь имеет вид d = {'C2': 0, 'C3': 1, 'C4': 2, 'C5': 3, 'C6': 4, 'C7': 5, 'C8': 6, «C9»: 7, «CT»: 8, «CJ»: 9, «CQ»: 10, «CK»: 11, «CA»: 12, «D2»: 13, «D3»: 14, «D4» ': 15,' D5 ': 16,' D6 ': 17,' D7 ': 18,' D8 ': 19,' D9 ': 20,' DT ': 21,' DJ ': 22,' DQ ': 23, «DK»: 24, «DA»: 25, «H2»: 26, «H3»: 27, «H4»: 28, «H5»: 29, «H6»: 30, «H7»: 31, «H8»: 32, «H9»: 33, «HT»: 34, «HJ»: 35, «HQ»: 36, «HK»: 37, «HA»: 38, «S2»: 39, «S3» ': 40,' S4 ': 41,' S5 ': 42,' S6 ': 43,' S7 ': 44,' S8 ': 45,' S9 ': 46,' ST ': 47,' SJ ': 48, 'SQ': 49, 'SK': 50, 'SA': 51} это код, который я должен изменить в столбце 'card1':
testdata = read_csv()
def convert_card_to_int(c):
if c == '' or c == ' ':
print ('card slot is empty or a blank')
return 0
if c in d:
return d.get(c)
else:
print ('card is not part of cardDict')
return 0
for index, rec in testdata.iterrows():
testdata['card1'][index] = convert_card_to_int(testdata['card1'][index])
testdata['card1'] = testdata['card1'].astype(int)
Я новичок в python и раньше не работал со словарями. Поэтому я искал некоторые форумы, но не получил ничего, что мне было нужно, возможно, я даже набирал неправильные вопросы. Проблема в том, что я хочу проверить, является ли значение списка значением словаря, и если это так, то следует заменить его целочисленным значением. Второй оператор if - это та часть, где возникает проблема. Или это на 1 oop ниже. Сообщение об ошибке сообщает мне, что это [TypeError: не подлежащий обработке тип 'dict']
testinput (file.csv):
card1,card2,card3,card4,card5
C3,H5,HK,HA,SK
C9,HJ,ST,SQ,SA
S6,S7,S8,S9,ST
testoutput:
testdata.head()
idx card1 card2 card3 card4 card5
0 1 H5 HK HA SK
1 7 HJ ST SQ SA
2 43 S7 S8 S9 ST