我有4個文件,我想用Python /熊貓讀取,文件是:https://github.com/kelsey9649/CS8370Group/tree/master/TaFengDataSet 我剝離了所有4個文件中的第一行(中文列標題)。 但是除此之外,這4個文件應該具有相同的格式。調查熊貓數據框中的不同數據類型
現在我想閱讀它們併合併成一個大的DataFrame。我嘗試了用
pars = {'sep': ';',
'header': None,
'names': ['date','customer_id','age','area','prod_class','prod_id','amount','asset','price'],
'parse_dates': [0]}
df = pd.DataFrame()
for i in ('01', '02', '12', '11'):
df = df.append(pd.read_csv(cfg.abspath+'D'+i,**pars))
BUT:文件D11給我一個列的格式不同,因此無法正確合併。該文件包含超過200k行,因此我不能輕易地查找該文件中的問題,但如上所述,我假設它具有相同的格式,但顯然在格式上有一些小的差異。
現在調查問題的最簡單方法是什麼?顯然,我無法檢查該文件中的每一行...
當我讀取3個工作文件併合並它們;讀D11 independetly,行
A = pd.read_csv(cfg.abspath+'D11',**pars)
仍然給我以下警告:
C:\Python27\lib\site-packages\pandas\io\parsers.py:1130: DtypeWarning: Columns (
1,4,5,6,7,8) have mixed types. Specify dtype option on import or set low_memory=
False.
data = self._reader.read(nrows)
在熊貓使用方法.info()
(爲A
和df
)產量:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 594119 entries, 0 to 178215
Data columns (total 9 columns):
date 594119 non-null datetime64[ns]
customer_id 594119 non-null int64
age 594119 non-null object
area 594119 non-null object
prod_class 594119 non-null int64
prod_id 594119 non-null int64
amount 594119 non-null int64
asset 594119 non-null int64
price 594119 non-null int64
dtypes: datetime64[ns](1), int64(6), object(2)
<class 'pandas.core.frame.DataFrame'>
Int64Index: 223623 entries, 0 to 223622
Data columns (total 9 columns):
date 223623 non-null object
customer_id 223623 non-null object
age 223623 non-null object
area 223623 non-null object
prod_class 223623 non-null object
prod_id 223623 non-null object
amount 223623 non-null object
asset 223623 non-null object
price 223623 non-null object
即使如果我在導入時使用dtype選項,我會以某種方式仍然害怕錯誤/不好的結果,因爲可能發生一些錯誤的da tatypes在導入時!?
如何克服和解決這個問題? 非常感謝
是的,幫助了我,謝謝。但我必須以其他方式實現它,因爲我需要檢查整數列(年齡和區域實際上是(當正確提供的時候)字符/字符串)。 – tim