【发布时间】:2021-12-26 14:22:09
【问题描述】:
输入:file1
0 1
EXE sldk
EXE1 vkrk
TPO dlfk
EXE2 sdfs
输入:file2
0 1
DD=CMD asldkjfalsdkfj
DD=EXE mbnwjnjcxjic
DD=DMFF pklckwkflkdf
DD=EXE2 okvwokmvfv
DD=EXE1 ksdjfokwoekc
预期输出:file1#
0 1 2
EXE sldk mbnwjnjcxjic
EXE1 vkrk ksdjfokwoekc
TPO dlfk NaN
EXE2 sdfs okvwokmvfv
结果:file1#
0 1 2
EXE "sldk" "mbnwjnjcxjic"
EXE "sldk" "ksdjfokwoekc"
EXE "sldk" "okvwokmvfv"
EXE1 "vkrk" "ksdjfokwoekc"
TPO "dlfk" "NaN"
EXE2 "sdfs" "okvwokmvfv"
代码
import pandas as pd
import numpy as np
with open(file1, 'r') as file1, open(file2, 'r') as file1:
lines_1 = file1.readlines()
lines_2 = file2.readlines()
lines_1_column = [x.split(',') for x in lines_1]
lines_2_column = [y.split(',') for y in lines_2]
df_file1 = pd.DataFrame(lines_1_column)
df_file2 = pd.DataFrame(lines_2_column)
extract_from_two_files = file2[0].str.extract(f'({"|".join(file1[0])})', expand=False)
merge_two_files = file1.merge(file2[[1]], how='left', left_on=0, right_on=extract_from_two_files)
merge_two_files.columns = np.arange(len(merge_two_files.columns))
merge_two_files.to_csv(file 1#, index=False, sep=',', header=None)
我想得到“预期的输出:file1#”,但结果就像这个代码的“结果:file1#”。很抱歉,您有什么建议吗?
【问题讨论】:
标签: python pandas file merge extract