0
我有熊貓這種奇怪的問題(蟒蛇3.5)大熊貓to_csv和from_csv,reords的號不匹配
我節省了數據幀到csv,然後讀同一文件恢復到數據幀。我在新的數據框中獲得不同數量的記錄。 奇怪的是,記錄數量增加了!
data_n.to_csv('file1.csv')
data_n1=pd.read_csv('file1.csv')
print (len(data_n),len(data_n1),len(data_n1)-len(data_n))
206637 208299 1662
下面是一些代碼這表明該問題:
import pandas as pd
orig = pd.DataFrame({'url':['foo\rbar', 'baz'], 'col':[1, 2]})
orig['idx'] = range(len(orig))
print(orig)
# col url idx
# 0 1 foo\rbar 0
# 1 2 baz 1
orig.to_csv('/tmp/file1.csv')
new = pd.read_csv('/tmp/file1.csv')
print(new)
# Unnamed: 0 col url idx
# 0 0 1 foo NaN
# 1 bar 0 NaN NaN
# 2 1 2 baz 1.0
如果我們看到某些額外的行看起來像什麼,它可能會幫助我們識別問題。如果'data_n'具有唯一索引,則可以使用'df = data_n1.loc [data_n1.index.difference(data_n.index)]'來隔離額外的行。發佈'df.reset_index()。head()。to_dict('list')'會以明確的方式向我們展示這些行中的幾個看起來像什麼 – unutbu
感謝您的迴應。我使用了你的代碼,並且一直將問題隔離到存儲網站URL的字段。其中一些最終有'\ r'。它是str型。對於這些情況,熊貓正在創建一個額外的索引值來代替網站。 –
它也在做別的奇怪的事情。我添加了一個索引: idx = range(len(data)) data ['idx'] = idx print(type [data ['idx']。iloc [0])),data ['idx'] .iloc [0]。我得到以下內容:210885 Out [47]: (None,0) –