Перебирать список - PullRequest
       26

Перебирать список

0 голосов
/ 29 августа 2018
Q6
4;99
3;4;8;9;14;18
2;3;8;12;18
2;3;11;18
2;3;8;18
2;3;4;5;6;7;8;9;11;12;15;16;17;18
2;3;4;8;9;10;11;13;18
1;3;4;5;6;7;13;16;17
2;3;4;5;6;7;8;9;11;12;14;15;18
3;11;18
2;3;5;8;9;11;12;13;15;16;17;18
2;5;11;18
1;2;3;4;5;8;9;11;17;18
3;7;8;11;13;14
2;3;8;18
2;13
2;3;5;8;9;11;12;13;18
2;3;4;9;11;12;18
2;3;5;9;11;18
1;2;3;4;5;6;7;8;9;11;14;15;16;17;18
2;3;8;11;13;18

import pandas as pd 
df_1 = pd.read_csv('amazon_final 29082018.csv') 
list_6 = list(df_1["Q6"]) 
list_6 = list(map(str, list_6)) 
list_7 = list(zip(list_6)) 
tem_list = [] 
for x in list_6: 
    if ('3' in x[0]): 
        tem_list.append('Fire') 
    else: 
        tem_list.append(None) 
df_1.to_csv('final.csv', index=False)

У меня много таких столбцов в данных. Я хочу извлечь из этого значение «3», код, который я написал, дает мне значение 3 вместе с 13,23,33 и так далее. Я хочу только количество строк, имеющих значение 3.

1 Ответ

0 голосов
/ 29 августа 2018

Вам нужно разбить строки и преобразовать каждое значение в целое число. В данный момент вы ищете наличие строки «3», поэтому строки типа «2; 13» проходят тест. Попробуйте что-то вроде этого:

list_6 = ["4;99", "3;4;8;9;14;18", "2;3;8;12;18", "2;3;11;18", "2;3;8;18", 
    "2;3;4;5;6;7;8;9;11;12;15;16;17;18", "2;3;4;8;9;10;11;13;18", 
    "1;3;4;5;6;7;13;16;17", "2;3;4;5;6;7;8;9;11;12;14;15;18", "3;11;18", 
    "2;3;5;8;9;11;12;13;15;16;17;18", "2;5;11;18", "1;2;3;4;5;8;9;11;17;18", 
    "3;7;8;11;13;14", "2;3;8;18", "2;13", "2;3;5;8;9;11;12;13;18", 
    "2;3;4;9;11;12;18", "2;3;5;9;11;18", 
    "1;2;3;4;5;6;7;8;9;11;14;15;16;17;18", "2;3;8;11;13;18"]
temp_list = [] 
for x in list_6: 
    numbers = [int(num_string) for num_string in x.split(';')]
    if (3 in numbers): 
        temp_list.append('Fire') 
    else: 
        temp_list.append('None') 
print(temp_list)
...