我编写这段代码是为了消除大型(800000)tweets csv文件中的重复项,但是,当我运行它时,我得到的文件比原始文件大:原始文件为1,580,307 KB,结果文件为1,852,462 KB。我尝试了一个较小的20行文件,原始文件为45KB,在这种情况下得到的结果文件为46KB。如果有人能告诉我这是怎么发生的,或者我做错了什么,我很感激。我困了!
import csv
import pandas as pd
geofile_input = r'GeoFile_20tweets.csv'
geofile_output = 'GeoFile_20tweets_output.csv'
file1= open(geofile_input, encoding="utf8")
reader1 = csv.reader(file1)
lines_in =len(list(reader1))
print('row_count csv input file: ', lines_in)
print('start reading the file on pandas')
df = pd.read_csv(geofile_input, sep=',')
print('dataframe', df.dtypes)
print('droping duplicates in pandas')
df.drop_duplicates(subset=None, keep='first', inplace=True)
print('saving the data frame in csv without duplicates')
df.to_csv(geofile_output,index=False, sep=',', header=True)
print('counting rows for the csv output')
file2= open(geofile_output, encoding="utf8")
reader2 = csv.reader(file2)
lines_out =len(list(reader2))
print('row_count csv output file: ', lines_out)
print('Process completed!')
demo data
cmd = '''
cat > test.csv << 'EOF'
a,b,c,d
1,2,1,1
1,2,1,1
1,2,1,1
1,2,1,1
1,2,1,1
1,2,1,1
1,2,1,1
1,2,1.0,1
EOF
'''
pycmd = lambda cmd: get_ipython().system(cmd)
pycmd(cmd)
df = pd.read_csv('test.csv')
df.to_csv('test_1.csv', index=False)
# -rw-r--r--. 1 root 88 Jan 20 16:16 test_1.csv
# -rw-r--r--. 1 root 74 Jan 20 16:15 test.csv
!cat test_1.csv
a,b,c,d
1,2,1.0,1
1,2,1.0,1
1,2,1.0,1
1,2,1.0,1
1,2,1.0,1
1,2,1.0,1
1,2,1.0,1
1,2,1.0,1