2016-09-23 4 views
0

Я использую панды и импортировал два csv.Pandas to_csv экспорт дает неправильные значения в dataframe

df1 является

enter image description here

df2 является

enter image description here

Тип данных df2 является

enter image description here

Когда я делаю некоторые манипуляции на df1 и df2:

df3= pd.merge(df1, df2, how='left', on=['Origin City Code', 'DC']) 

, а затем экспортировать его в CSV

df3.to_csv("test.CSV") 

то сумма всех значений в колонке «Volume» НЕ соответствие с суммой значений под колонны оригинал df2. На самом деле сумма в df3 выходит больше. Я считаю, что проблема возникает из-за чисел с плавающей запятой. Но есть ли способ разрешить это? Я просмотрел следующие ссылки, но мой вопрос остается без ответа.

https://github.com/pydata/pandas/issues/2069

float64 with pandas to_csv

reading and writing csv in pandas changes cell values

Wrong decimal calculations with pandas

Вот файлы кода я использую: https://www.dropbox.com/s/kjpnhl7qtojes92/sample.rar?dl=0

+3

У вас есть повтор '[ 'Origin City Code ',' DC '] 'строк в' df1'? Это приведет к повторению томов в объединенном DataFrame, объясняя большую сумму. – root

+0

@root .. нет повторного значения в df1. Я проверил – Ajeet

+2

Я не имею в виду повторы в целом, только в поле '['Origin City Code', 'DC']' subset, то есть 'df.duplicated (subset = ['Origin City Code', 'DC']) .any() '. Сколько стоит сумма? Можете ли вы представить воспроизводимый пример? Я не могу воспроизвести ошибку с данными, которые вы указали. – root

ответ

1

Я смотрел на ваши файлы, так как @root говорил выше , в df1 комбинация Origin City Code и DC не являются уникальными. Например, есть две записи с Origin City Code = GGN и DC = ASA.

Если вы хотите, чтобы проверить его можно запустить следующий код:

df1[df1.duplicated(subset=['Origin City Code', 'DC'], keep=False)].sort_values(['Origin City Code', 'DC']) 

Вот глава этого вывода:

enter image description here

+0

Хороший ответ. Это @root, который говорил о неединственности, хотя и не мне. (Хотя я согласен с корнем, что кажется вероятным, что это, по крайней мере, часть проблемы.) –

Смежные вопросы