![](/img/trans.png)
[英]How to convert list of Tuples from a dataframe column to dataframe?
[英]convert dataframe column from list of strings to tuples
我在列表中有網址。 這是數據框的一個元素。 我需要將這些字符串列表中的每一個轉換為像元組這樣的可散列類型。 我用逗號讀過那個 tuple(a,) ,在轉換時保留列表中的字符串。 應用於一整列數據框時,我似乎無法使其正常工作。 可能缺少一些簡單的東西
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
假設您的數據框是這樣的:
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]))
這將僅將元組應用於非字符串的條目,並轉換為列表,然后轉換為字符串的元組條目。 就好像它是一個字符串並且您應用元組一樣,它將給出一個元組,每個字符作為條目。
您的列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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.