![](/img/trans.png)
[英]locating values in (a very large) pandas dataframe and store to dictionaries
[英]Overflow error when creating pandas dataframe from dictionaries containing very large numeric values
直接將表放入pandas DataFrame時,出現錯誤“ OverflowError:long int太大而無法轉換”。 這似乎是由於表中包含的數字很大,但是嘗試https://www.pythonanywhere.com/try-ipython/時沒有錯誤。 我添加了一種解決方法,將值轉換為float,然后創建了DataFrame。
import pandas as pd
table = [{'two': 2, 'one': 1}, {'two': 22, 'one': 11},
{'two': 222, 'one': 1111111111111111111111111111111111111111111111111111111111111111111111}]
# workaround for overflow error
for x, i in enumerate(table):
table[x]['one']=float(table[x]['one'])
df = pd.DataFrame(table)
有一個更好的方法嗎? 其他人指出,他們沒有得到任何溢出錯誤。 這是python 2.7
默認情況下,pandas嘗試讀取和理解您的數據,並將其轉換為適當的數據類型。 在您的情況下,它試圖將數據加載到np.float64
對象中。 但是,您的數據顯然太大。
一種解決方法是在創建數據框時指定dtype=object
。
df = pd.DataFrame(table, dtype='object')
df
one two
0 1 2
1 11 22
2 1111111111111111111111111111111111111111111111... 222
請注意,這樣做會消除速度和效率的所有可能性,因為object
的使用非常緩慢。 我認為您已經准備好使用這種性質的數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.