熊猫清洁数据

时间:2014-12-05 06:53:13

标签: python list pandas dataframe comma

所以我是编程新手,刚开始使用pandas。

以下是我的数据框的特定列(称为类别)的值列表。如何删除","所以它变得像一个正常的列表,看起来像:

0     ['Doctors','Health & Medical']
1     ['Restaurant']

而不是如下所示。请帮忙。

0     [,u,',D,o,c,t,o,r,s,',,, ,u,',H,e,a,l,t,h, ,&,...
1                       [,u,',R,e,s,t,a,u,r,a,n,t,s,',]
2     [,u,',A,m,e,r,i,c,a,n, ,(,T,r,a,d,i,t,i,o,n,a,...
3     [,u,',F,o,o,d,',,, ,u,',I,c,e, ,C,r,e,a,m, ,&,...
4     [,u,',C,h,i,n,e,s,e,',,, ,u,',R,e,s,t,a,u,r,a,...

4 个答案:

答案 0 :(得分:1)

如果您不一定需要将JSON转换为csv,则可以从JSON本身加载数据。

import pandas as pd

dframe = pd.json_read(json_dumped_as_string)

希望有所帮助! .. :))

答案 1 :(得分:0)

我不太明白你的问题。这就是我得到的:

mylist = [['Doctors','Health & Medical'], ['Restaurant']]
pandas.Series(mylist)

输出:

0    [Doctors, Health & Medical]
1                   [Restaurant]
dtype: object

答案 2 :(得分:0)

根据我的理解你的问题,这就是你要做的事情:

你有一个以逗号分隔的字符串列表的DataFrame。

import pandas as pd
df = pd.DataFrame({
    "list_col" : ["Doctors,Health & Medical", "Restaurant"]
})

现在您可以使用pandas字符串操作工具进行拆分:

col_of_lists = df.list_col.str.split(",")

之后,您可以通过各种方式访问​​列表项,例如:

col_of_lists[0][1]将访问单个项目: - > 'Health & Medical'

col_of_lists.str[0]将创建一个新列,其中只包含每个列表的第一个元素,如果没有第一个元素,则为NAN

0       [Doctors]
1    [Restaurant]
Name: list_col, dtype: object

由于您没有提出具体问题,因此很难给出准确答案。

答案 3 :(得分:0)

看起来您想要转换像这样的数据框中的行

s = pd.DataFrame(["[,u,',R,e,s,t,a,u,r,a,n,t,s,',, ,u,',D,o,c,t,o,r,s,',,,,,, ,,u,',F,o,o,d,']"], columns=['categories'])

单词列出行。

我的解决方案:

import re

t = s['categories'].apply(lambda k: re.findall(r"u\'(.+?)\'", k.replace(',','')))

>>> 0    [Restaurants, Doctors, Food]
Name: value, dtype: object