我只是几周的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中工作吗?
非常感谢你!
答案 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):