Я использую Python 3.7
Мне нужно загрузить данные из двух разных источников (оба csv) и определить, какие строки из одного источника отсутствуют во втором источнике.
Я использовал фреймы данных pandas для загрузки данных и сравнения двух источников данных.
Я загрузил данные из файла csv, и значение, например 2010392, в столбце фрейма данных превратилось в 2010392.0.
Я прочитал довольно много статей о форматировании столбцов фрейма данных; к сожалению, большинство из них касается преобразования даты и времени.
Я наткнулся на статью «Форматировать целочисленный столбец Data-frame в Python-пандах» в http://www.datasciencemadesimple.com/format-integer-column-of-dataframe-in-python-pandas/, которая не решает мою проблему
На основании вышеупомянутой статьи я попробовал следующее:
pd.to_numeric(data02['IDDLECT'], downcast='integer')
Out[63]:
0 2010392.0
1 111777967.0
2 2010392.0
3 2012554.0
4 2010392.0
5 2010392.0
6 2010392.0
7 1170126.0
и, как вы можете видеть, значения столбцов по-прежнему имеют десятичную точку с нулем.
Я ожидаю, что загрузка фрейма данных из файла csv сохранит формат числа, например 2010392, равным 2010392, а не 2010392.0
Вот код, который я пробовал:
import pandas as pd
data = pd.read_csv("timetable_all_2019-2_groups.csv")
data02 = data.drop_duplicates()
print(f'Len data {len(data)}')
print(data.head(20))
print(f'Len data02 {len(data02)}')
print(data02.head(20))
pd.to_numeric(data02['IDDLECT'], downcast='integer')
Вот несколько строк содержимого файла csv:
Данные в одном источнике выглядят так:
IDDCYR,IDDSUBJ,IDDOT,IDDGRPTYP,IDDCLASSGROUP,IDDLECT,IDDPRIMARY
019,AAACA1B,VF,C,A1,2010392,Y
2019,AAACA1B,VF,C,A1,111777967,N
2019,AAACA3B,VF,C,A1,2010392,Y
2019,AAACA3B,VF,C,A1,2012554,N
2019,AAACB2A,VF,C,B1,2010392,Y
2019,AAACB2A,VF,P,B2,2010392,Y
2019,AAACB2A,VF,C,B1,2010392,N
2019,AAACB2A,VF,P,B2,1170126,N
2019,AAACH1A,VF,C,A1,2010392,Y