2016-07-10 15 views
1

Как я могу преобразовать строки данных в Pandas в список строк? Я хочу сопоставить каждую строку фрейма данных в строке, например, он содержит имя столбца и значение столбца для выбранных столбцов данных:Преобразование строк pandas Dataframe в список строк

например, я хотел бы преобразовать столбцы B, C, D в список строк (результат), как показано ниже:

import pandas as pd 
A=[1,2,3,4] 
B=[5,6,7,8] 
C=[2,3,4,5] 
D=[4,5,6,7] 
df=pd.DataFrame(data=[A,B,C,D]).transpose() 
df.columns=['A','B','C','D'] 
print df 

    A B C D 
0 1 5 2 4 
1 2 6 3 5 
2 3 7 4 6 
3 4 8 5 7 

result=['B:5,C:2,D:4','B:6,C:3,D:5','B:7,C:4,D:6','B:5,C:2,D:4','B:8,C:5,D:7'] 
print 
print result 

['B:5,C:2,D:4', 'B:6,C:3,D:5', 'B:7,C:4,D:6', 'B:5,C:2,D:4', 'B:8,C:5,D:7'] 

Edit: формат строки не должны быть точно так, как в моем примере, если он содержит имена столбцов и значения

ответ

2

не уверен, если это лучший но это будет делать то, что вы хотите:

cols = ["B", "C", "D"] 
[",".join("{}:{}".format(*t) for t in zip(cols, row)) for _, row in df[["B", "C", "D"]].iterrows()] 

Который даст вам:

['B:5,C:2,D:4', 'B:6,C:3,D:5', 'B:7,C:4,D:6', 'B:8,C:5,D:7'] 
+0

Это делает работу с помощью python3, но на основе ваших отпечатков вам не кажется, что с помощью python3 –

+0

Что такое ошибка? –

+1

@ayhan, действительно, хороший улов. –

Смежные вопросы