我正在努力解决pandas数据框的以下问题 Python 2.7.12 大熊猫0.18.1
df = pd.read_csv(file_name, encoding='utf-16', header=0, index_col=False, error_bad_lines=False,
names=['Package_Name','Crash_Report_Date_And_Time','Crash_Report_Millis_Since_Epoch','Device', 'Android_OS_Version','App_Version_Name','App_Version_Code','Exception_Class_Name','Exception_Message','Throwing_File_Name','Throwing_Class_Name','Throwing_Method_Name','Throwing_Line_Number','Native_Crash_Library','Native_Crash_Location','Crash_Link'])
我调试代码,发现以下数据未在数据帧中正确插入。
Exception_Message
字段中有一些特殊字符告诉pandas将该行的其余数据移动到下一行。
Pandas如何正确读取文件。
以下是两行的输出。 137和138是行号。
Package_Name Crash_Report_Date_And_Time \
137 com.vcast.mediamanager 2016-09-05 14:54:13
138 NaN Class.java
Crash_Report_Millis_Since_Epoch Device Android_OS_Version \
137 1473087253130 victara 22
138 java.lang.Class classForName -2
App_Version_Name App_Version_Code \
137 14.3.34 1.503050e+09
138 NaN NaN
Exception_Class_Name \
137 java.lang.ClassNotFoundException
138 https://play.google.com/apps/publish?dev_acc=0...
Exception_Message Throwing_File_Name Throwing_Class_Name \
137 Invalid name: com.strumsoft.appen NaN NaN
138 NaN NaN NaN
Throwing_Method_Name Throwing_Line_Number Native_Crash_Library \
137 NaN NaN NaN
138 NaN NaN NaN
Native_Crash_Location Crash_Link account_id
137 NaN NaN NONE
138
NaN NaN NONE
使用来自行137的一些数据错误地创建了行138. 137中的Exception Message
字段具有将该行打破到下一行的某个值。这是错的。
我尝试了不同的编码没有任何帮助。有人可以帮忙吗?
答案 0 :(得分:0)
所以解决方案非常简单。在Pandas 0.18中,我必须指定df = pd.read_csv(file_name,lineterminator='\n', encoding='utf-16', delimiter=',', header=0, index_col=False, error_bad_lines=False,...
In [10]: df.set_index('Date').ix['2010-01-01' : '2010-01-10']
Out[10]:
Quantity
Date
2010-01-01 1
2010-01-02 0
2010-01-03 0
2010-01-04 2
2010-01-05 3
2010-01-06 1
2010-01-07 0
2010-01-08 1
2010-01-09 1
2010-01-10 2
In [11]: df.set_index('Date').ix['2010-01-01' : '2010-01-10', 'Quantity'].plot.bar(grid=False, legend=False)
这个简单的标志解决了我的问题。