Почему сумма столбца пустого кадра данных Pandas возвращает логическое значение - PullRequest
0 голосов
/ 27 мая 2020

Когда я суммирую пустую серию, я ожидаю, что значение будет нулем, как указано в Pandas документации . Действительно, если я последую приведенному там примеру, создаю пустую серию и суммирую ее, то это то, что я получаю

(Pdb) empty = pd.Series([])
(Pdb) type(empty)
<class 'pandas.core.series.Series'>
(Pdb) empty.sum()
0.0

Однако у меня есть DataFrame, который на основе базовых данных иногда может быть пустым. . В этом случае у меня есть что-то вроде

(Pdb) prior
Empty DataFrame
Columns: [ILC, FCTC, AWD, PD]
Index: []
(Pdb) prior['PD'].sum()
False

Это неожиданно, потому что

(Pdb) type(prior['PD'])
<class 'pandas.core.series.Series'>

Это похоже на ситуацию, идентичную той, что была в первом блоке кода. Может ли кто-нибудь помочь мне понять, что мне не хватает? Почему сумма во втором блоке кода возвращает False, тогда как первый возвращает числовое значение?

Edit

Меня попросили опубликовать код, который создает предыдущий. Есть несколько шагов, которые go для его создания, но я могу воссоздать эту проблему, создав пустой фрейм данных и суммируя по одному из столбцов. См. Ниже:

In [1]: import pandas as pd

In [2]: %paste
dfObj = pd.DataFrame(columns=['User_ID', 'UserName', 'Action'])

print("Empty Dataframe ", dfObj, sep='\n')

## -- End pasted text --
Empty Dataframe
Empty DataFrame
Columns: [User_ID, UserName, Action]
Index: []

In [3]: dfObj['User_ID'].sum()
Out[3]: False
...