将生成的大型控制台输出写入文本文件,而不是完整的输出

时间:2019-01-29 03:27:20

标签: python pandas

我正在通过搜索其他文件中的列值来比较两个excel文件,如果该列值不存在于其他文件中,它将把整行写入文本文件。

我的excel文件很大,它们包含大约290万行

这是我尝试过的

 import sys
 import pandas as pd

 orig_stdout = sys.stdout
 f = open('out.txt', 'w')
 sys.stdout = f`


df0 = pd.ExcelFile('1.xlsx').parse('Sheet1')
df1 = pd.ExcelFile('v2.xlsx').parse('Sheet1')

print (df0[~df0['initial_id'].isin(df1['initial_id'])])

sys.stdout = orig_stdout
f.close()

print('Done.')'

比较initial_id列下的一个值,如果第二个excel文件中不存在该值,则打印从第一个文件到输出文件的整个行

实际结果

21  EXCLAMATION MARK            A1  INVERTED EXCLAMATION MARK
22  QUOTATION MARK              A2  CENT SIGN
23  NUMBER SIGN                 A3  POUND SIGN
24  DOLLAR SIGN                 A4  CURRENCY SIGN
25  PERCENT SIGN                A5  YEN SIGN
26  AMPERSAND                   A6  BROKEN BAR
27  APOSTROPHE                  A7  SECTION SIGN
...     ...                    ...       ...
3159  DIGIT NINE                  B9  SUPERSCRIPT ONE
3160  COLON                       BA  MASCULINE ORDINAL INDICATOR
3161  SEMICOLON                   BB  RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
3162  LESS-THAN SIGN              BC  VULGAR FRACTION ONE QUARTER
3163  EQUALS SIGN                 BD  VULGAR FRACTION ONE HALF

预期结果

也应将27行之后的遗漏行写入文件中。如果要消耗RAM来存储,零件文件也将起作用

0 个答案:

没有答案