首页 > 解决方案 > 试图合并来自不同excel文件的列

问题描述

在此处输入图像描述好的,我正在尝试合并来自不同 Excel 文件的列。例如,一个文件有地址 1、地址 2、城市、州、邮编,另一个有位置地址、城市、州、邮编。我附加了 excel 文件,你可以从下面的代码中看到,我合并了第一组列没有问题。问题是结合第二组列欢迎任何提示。下图是我正在寻找的结果

import os
import pandas as pd
import numpy as np
path = os.getcwd()
files = os.listdir(path)
files_xls = [f for f in files if f[-4:] == 'xlsx']
df = pd.DataFrame()
for f in files_xls:
  qw = pd.read_excel(f)
  df = df.append(qw)
  df = df.replace(np.nan,' ', regex=True)
  cf = df.iloc[:, df.columns.str.contains('address1|address2|city|state|zip|Location Address|City|State|ZIP', case=False)]
  vf= df['address1'].map(str) + '-' + df['address2'].map(str) + '-' + df['city'].map(str) + '-' + df['state'].map(str) + '-' + df['zip'].map(str),
  df['Location Address'].map(str) + '-' + df['City'].map(str) + '-' + df['State'].map(str) + '-' + df['ZIP'].map(str)
  export_csv = vf.to_csv('dataframe.csv', index=None, header=True)

标签: pythonpandasdataframedata-science

解决方案


我在变量中添加了第二部分并创建另一个 DF 并将这两个部分添加到不同的 DF 然后写入 csv 文件

import os
import pandas as pd
import numpy as np
path = os.getcwd()
files = os.listdir(path)

files_xls = [f for f in files if f[-4:] == 'xlsx']
df = pd.DataFrame()
df1 = pd.DataFrame()
for f in files_xls:
    qw = pd.read_excel(f)
    df = df.append(qw)
    df = df.replace(np.nan,' ', regex=True)
    cf = df.iloc[:, df.columns.str.contains('address1|address2|city|state|zip|Location_Address|City|State|ZIP', case=False)]
    vf = df['address1'].map(str) + '-' + df['address2'].map(str) + '-' + df['city'].map(str) + '-' + df['state'].map(str) + '-' + df['zip'].map(str)
    vf1 = df['Location_Address'].map(str) + '-' + df['City'].map(str) + '-' + df['State'].map(str) + '-' + df['ZIP'].map(str)
    df1['part1'] = vf
    df1['part2'] = vf1
    export_csv = df1.to_csv('dataframe.csv', index=None, header=True)

输出

part1,part2
300 DUFFERIN AVE - LL119- -london-OH-N6A 4L9,150 jimmy ave-md- -19977
301 DUFFERIN AVE - LL119- -london-OH-N6A 4L10,151 jimmy ave-md- -19978
302 DUFFERIN AVE - LL119- -london-OH-N6A 4L11,152 jimmy ave-md- -19979
303 DUFFERIN AVE - LL119- -london-OH-N6A 4L12,153 jimmy ave-md- -19980

推荐阅读