что-то я пропускаю, код не работает на 1/3 данных, на 2/3 он работает правильно? - PullRequest
0 голосов
/ 10 января 2020

У меня проблема.

У меня есть данные, с ~ 40 столбцами, столбцы 6 и 10 по умолчанию являются целыми числами, код которых, как следует ниже, работает с 2/3 данных, но не работает с другими 1 /. 3 из этого, я понятия не имею, почему:

data = pd.read_csv(path,sep='|',header=None,index_col=0,dtype='str')
data[10] = pd.to_numeric(data[10])
data[6] = pd.to_numeric(data[6])
data['pom_sucet'] = data.groupby([1,2,3,4,5,17,18,22,25])[10].transform(sum)
data['pom_pocet'] = data.groupby([1,2,3,4,5,17,18,22,25])[6].transform(sum)

data = data.drop_duplicates([1,2,3,4,5,17,18,22,25])
#print (data)
data[10] = data['pom_sucet'].drop(columns=['pom_sucet'])

в случае, если он не суммирует целые числа, которые он получает NaN, и преобразует мой coolumn из int в объект, что вызывает много проблем.

это, кажется, не имеет образца. Другие столбцы нормальные, что должно быть?

1 Ответ

0 голосов
/ 11 января 2020

ALollz, вы были правы, в некоторых строках у меня было значение NaN, когда я его удалял, все работает нормально.

Очень сложно сказать, что происходит, без примера, который полностью воспроизводит проблему , Единственное руководство, которое я могу дать, состоит в том, что, поскольку pd.to_numeri c проходит без ошибок, столбцы 10 и 6 гарантированно будут обозначены цифрами c, поэтому их сумма преобразования также будет равна нумерации c. Однако, поскольку вы читаете данные, а затем просто пытаетесь их получить, я предполагаю, что [1,2,3,4,5,17,18,22,25] имеют несколько нулевых значений. Если какой-либо ключ группировки имеет нулевое значение, для этой строки будет выведено NaN. Хотя я не могу понять, как вы получите столбец объекта для результата.

спасибо, я не мог видеть это вчера (возможно, я просто слишком устал, чтобы видеть)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...