большой размер терпит неудачу в большом списке - PullRequest
0 голосов
/ 04 октября 2018

У меня есть длинный список фреймов данных панд в соответствии с типом "pandas.core.series.Series".В этом списке может быть миллион записей.Я создал его, разделив фрейм данных с помощью numpy.array_split.

Каждый из фреймов данных предположительно содержит только одно число на данный момент:

In[29]: df1[0:5]
Out[29]: 
[1    12149992.0
Name: 3121916261129, dtype: float64, 2    12149995.0
Name: 3121916261129, dtype: float64, 3    12149997.0
Name: 3121916261129, dtype: float64, 4    12149994.0
Name: 3121916261129, dtype: float64, 5    12149993.0
Name: 3121916261129, dtype: float64]

Теперь, когда я хочу узнать, насколько велик этот список, я использую функцию размера numpy,который не проходит через некоторое время:

In [31]: np.size(df1)
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
/home/sw/Dropbox (IQOQI_Vienna)/dataanalysis_results/allan/allanvariance_pandas1khz.py in <module>()
----> 1 np.size(df1)

/usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.pyc in size(a, axis)
   2693             return a.size
   2694         except AttributeError:
-> 2695             return asarray(a).size
   2696     else:
   2697         try:

/usr/lib/python2.7/dist-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
    529 
    530     """
--> 531     return array(a, dtype, copy=False, order=order)
    532 
    533 

/usr/lib/python2.7/dist-packages/pandas/core/series.pyc in __getitem__(self, key)
    601         key = com._apply_if_callable(key, self)
    602         try:
--> 603             result = self.index.get_value(self, key)
    604 
    605             if not is_scalar(result):

/usr/lib/python2.7/dist-packages/pandas/indexes/base.pyc in get_value(self, series, key)
   2167         try:
   2168             return self._engine.get_value(s, k,
-> 2169                                           tz=getattr(series.dtype, 'tz', None))
   2170         except KeyError as e1:
   2171             if len(self) > 0 and self.inferred_type in ['integer', 'boolean']:

pandas/index.pyx in pandas.index.IndexEngine.get_value (pandas/index.c:3557)()

pandas/index.pyx in pandas.index.IndexEngine.get_value (pandas/index.c:3240)()

pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:4279)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8564)()

pandas/src/hashtable_class_helper.pxi in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:8508)()

KeyError: 0
In [32]: 

Честно говоря, я не понимаю это сообщение об ошибке.Кроме того, я ищу лучший способ определить размер этого списка.Может кто-нибудь, пожалуйста, помогите мне с этим?

1 Ответ

0 голосов
/ 04 октября 2018

Ошибки указывают, что NumPy пытается преобразовать ваш список в массив, но не удается.Вместо этого вы можете сложить размеры:

sum(series.size for series in df1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...