【问题标题】:trying to combine columns from different excel files试图合并来自不同excel文件的列
【发布时间】:2020-02-26 19:34:10
【问题描述】:

ok 我正在尝试合并来自不同 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)

【问题讨论】:

  • 你能提供输入和预期输出吗?
  • this blog 可能会有所帮助
  • 我添加了输出的图片。输入只是一个 Excel 文件,地址位于不同的列中。

标签: python pandas dataframe data-science


【解决方案1】:

我在变量中添加了你的第二部分并创建另一个 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

【讨论】:

  • 那是我的错,我确实使用了 vf,这不是问题所在。问题来自读取带有位置地址的第二组是错误的。
  • KeyError: 'Location Address' 这只发生在我添加行 df['Location Address'].map(str)+'-'+df['City'].map(str) +'-'+df['State'].map(str)+'-'+df['ZIP'].map(str) 在我合并第一组列之后。
  • 我想我知道问题所在,您可以将您使用的任何 excel 文件发给我,或者只是发布有关问题的数据,我会从那里拿走
  • 你能解释一下问题,我可以自己解决
  • 出于安全原因,我无法向您提供数据
猜你喜欢
  • 1970-01-01
  • 2017-09-02
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 1970-01-01
  • 2021-08-21
相关资源
最近更新 更多