2017-09-20 3 views
2

목록에 URL이 있습니다. 이것은 데이터 프레임의 한 요소입니다. 이 문자열 목록 각각을 튜플과 같은 해시 가능 형식으로 변환해야합니다. 쉼표로 그 튜플 (a,)을 읽었고, 변환 할 때 목록 안의 문자열을 보존합니다. 데이터 프레임의 전체 열에 적용 할 때 이것이 작동하는 것처럼 보일 수 없습니다. 간단한 PROB없는 뭔가문자열 목록에서 데이터 프레임 열을 튜플로 변환합니다.

df['url'] = tuple(df['url',]) ...

flatframe['url'] = flatframe['url'].apply(tuple) ... 작품을 작동하지 않고 문자열 여기

데이터 행의 커플 보존하지 않습니다

index artist ranking song songurl songtext artisturl year 

2280 (Lady Antebellum,) 81 [Bartender (Lady Antebellum song)] [/wiki/Bartender_(Lady_Antebellum_song)] "Bartender (Lady Antebellum song)" /wiki/Lady_Antebellum 2014 

2281 (Naughty Boy, Sam Smith) 82 [La La La (Naughty Boy song)] [/wiki/La_La_La_(Naughty_Boy_song)] "La La La (Naughty Boy song)" [/wiki/Naughty_Boy, /wiki/Sam_Smith_(singer)] 2014 

2282 (Robin Thicke, T.I., Pharrell Williams) 83 [Blurred Lines] [/wiki/Blurred_Lines] "Blurred Lines" [/wiki/Robin_Thicke, /wiki/T.I., /wiki/Pharrel... 2014 

2283 (Lady Gaga, R. Kelly) 84 [Do What U Want] [/wiki/Do_What_U_Want] "Do What U Want" [/wiki/Lady_Gaga, /wiki/R._Kelly] 2014 
+0

당신은 우리에 대한 샘플 데이터를 볼 제공 할 수 있습니까? – yesemsanthoshkumar

+0

아마도이 방법이 도움이 될 수 있습니다 ... https : //stackoverflow.com/questions/37994791/in-pandas-how-to-read-csv-files-with-lists-in-a-column – yesemsanthoshkumar

+0

샘플을 제공 할 수 있습니까? 당신이 기대하고있는 출력의? –

답변

0

Yout 데이터 프레임은 다음과 같습니다.

import pandas as pd 
pd.set_printoptions(max_columns=10) 
df = pd.DataFrame(
[[2280, ("Lady Antebellum"), 81, ["Bartender (Lady Antebellum song)"], ["/wiki/Bartender_(Lady_Antebellum_song)"], "Bartender (Lady Antebellum song)", "/wiki/Lady_Antebellum", 2014], 
[2281, "(Naughty Boy, Sam Smith)", 82, ["La La La (Naughty Boy song)"], ["/wiki/La_La_La_(Naughty_Boy_song)"], "La La La (Naughty Boy song)", ["/wiki/Naughty_Boy", "/wiki/Sam_Smith_(singer)"], 2014], 
[2282, "(Robin Thicke, T.I., Pharrell Williams)", 83, ["Blurred Lines"], ["/wiki/Blurred_Lines"], "Blurred Lines", ["/wiki/Robin_Thicke", "/wiki/T.I. /wiki/Pharrel"], 2014], 
[2283, "(Lady Gaga, R. Kelly)", 84, ["Do What U Want"], ["/wiki/Do_What_U_Want"], "Do What U Want", ["/wiki/Lady_Gaga", "/wiki/R._Kelly"], 2014]], 
columns = ["index", "artist", "ranking", "song", "songurl", "songtext", "artisturl", "year"]) 
df.artisturl = df.artisturl.apply(lambda x: tuple(x) if type(x)!= str else tuple([x])) 

이 문자열 항목을 튜플 만 문자열이 아닌 항목에 튜플을 적용하고 목록으로 변환됩니다으로 510,403,210은 그럼 당신은 시도 할 수 있습니다. 마치 문자열이고 튜플을 적용하면 각 문자가 튜플로 입력됩니다.

artisturl 다음 보일 것이다 열은 귀하의 :

>>> df.artisturl 
0       ('/wiki/Lady_Antebellum',) 
1 ('/wiki/Naughty_Boy', '/wiki/Sam_Smith_(singer)') 
2 ('/wiki/Robin_Thicke', '/wiki/T.I. /wiki/Pharr... 
3    ('/wiki/Lady_Gaga', '/wiki/R._Kelly') 
Name: artisturl