无法使用Pandas读取Google Survey生成的csv文件

时间:2018-06-12 18:37:18

标签: pandas csv

我只是几周的Python和数据分析。我正在尝试分析Google Survey为我公司生成的超过3000个响应的数据集。

这是数据集的外观: A first few rows of the data set

<asp:TextBox runat="server" ID="txtname" />
        <asp:RegularExpressionValidator runat="server" ControlToValidate="txtname"
            ForeColor="Red" SetFocusOnError="true" Display="Dynamic"
            ErrorMessage=" Restrict for special characters" ID="rfvname"
            ValidationExpression="^[\sa-zA-Z0-9]*$">

        </asp:RegularExpressionValidator>

我收到 import pandas as pd data=pd.read_csv('Survey.csv')

的错误

我的猜测是调查中的一些问题允许用户选择多个选项,这会导致csv文件中的某个单元格存储值列表而不是值。此列表中的值由&#39;,&#39;分隔。一个明显的例子是“Paper_Comic_Genre”列中的值。上方。

无论如何我可以将这个csv文件读入Python然后在那里清理而不是在excel中工作吗?

非常感谢你!

2 个答案:

答案 0 :(得分:0)

如果您的解析错误位于最后一列,您可以使用我自己创建的这个ad hoc函数。

        import re
        #native module


        def tricky_parsing(number_of_sep,text):
            sep=[m.start() for m in re.finditer(',', text)]
        #array of each delimiter positions 


            tricky_list=[]
            tricky_list.append(text[:sep[0]])

            for i in range(1,number_of_sep):
                 tricky_list.append(text[sep[i-1]+1:sep[i]])

            tricky_list.append(text[sep[number_of_sep-1]+1:])

            return tricky_list

        #test
        tricky_parsing(4,"amara,boudib,test1,test3,,1,2,3")

答案 1 :(得分:0)

非常感谢你提出的所有建议。 Amara,你的解决方案太复杂了我无法理解:D。我试了一下,得到了一个&#34;索引超出范围&#34;的错误。 这段代码最终适用于我:

import pandas as pd
data = pd.read_csv('Survey.csv', sep=',', error_bad_lines=False, encoding="ISO-8859-1")
data.info()

我终于发现问题是由unicode问题引起的。关于sep =&#39;,&#39;,我必须做试验和错误,因为我不知道哪个分隔符(&#39;,&#39;或&#39 ;;&#39; ;或者&#39; \ t&#39;)使用。我正在使用Mac,因此无法访问notepadd ++。 Sublime Text没有给出提示。

结果:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5086 entries, 0 to 5085
Data columns (total 43 columns):
相关问题