【问题标题】:combining Data from multiple excel files合并来自多个excel文件的数据
【发布时间】:2021-08-21 10:16:42
【问题描述】:

我正在尝试将 2 个 Excel 文件中的数据相互合并,但它只是无法正常工作。 我的代码:

import pandas as pd
import numpy as np
import xlsxwriter
import warnings
    
open_tradein_xlsx = "Z_results.xlsx"
open_keepa_xlsx =  "keepa_data.xlsx"

with warnings.catch_warnings(record=True):
    warnings.simplefilter("always")
    keepa_data = pd.read_excel(open_keepa_xlsx, usecols=['Used: Lowest'])
    tradein_data = pd.read_excel(open_tradein_xlsx, index_col=0,)

dataframe = pd.DataFrame =(tradein_data,keepa_data)
data = pd.concat(dataframe, ignore_index=True)

print(data)

#if dataframe['Used: Lowest'] < dataframe['Rebuy'] or tradein_data['Momox']:
    #print(x)

和输出:

             ISBN       Rebuy       Momox  Used: Lowest
0      Unnamed: 0  Unnamed: 1  Unnamed: 1           NaN
1             NaN         NaN         NaN           NaN
2   9783630876672       12.19         2.6           NaN
3   9783423282789       11.48         2.8           NaN
4   9783833879500       16.92       10.15           NaN
5   9783898798822        7.07        2.28           NaN
6   9783453281417       13.06        7.41           NaN
7             NaN         NaN         NaN          13.5
8             NaN         NaN         NaN          14.0
9             NaN         NaN         NaN          19.9
10            NaN         NaN         NaN           2.0
11            NaN         NaN         NaN          16.4

Process finished with exit code 0

我想你可以看到我想要做什么,'Used: Lowest' Data 应该在第 2-6 行。

我已经尝试过data = pd.concat(dataframe, ignore_index=True, axis=1),但随后出现以下错误:pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

创建“Z_results.xlsx”的代码:

import pandas as pd
import numpy as np
import xlsxwriter
import pandas as pd
from pathlib import Path

open_momox_xlsx = ("momox_ergebnisse.xlsx")
momox_data = pd.read_excel(open_momox_xlsx,usecols='B')

open_rebuy_xlsx = ("rebuy_ergebnisse.xlsx")
rebuy_data = pd.read_excel(open_rebuy_xlsx,usecols='B')

open_isbn_xlsx = ("momox_ergebnisse.xlsx")
isbn_data = pd.read_excel(open_rebuy_xlsx,usecols='A')

dataframe = pd.DataFrame =({'ISBN': isbn_data, 'Rebuy': rebuy_data, 'Momox': momox_data})
data = pd.concat(dataframe,axis=1)

data[['Rebuy','Momox']] = data[['Rebuy','Momox']].replace({"///": np.nan, ",": "."}, regex=True).astype(float)
data = data.loc[data[['Rebuy','Momox']].ge(1.).all(axis="columns")]

isbn_output = data['ISBN']

datatoexcel = pd.ExcelWriter("Z_results.xlsx", engine='xlsxwriter')

data.to_excel(datatoexcel)

datatoexcel.save()

np.savetxt("ISBN_output.txt",isbn_output,fmt = "%s")

我认为 xlsx 将是最好的存储类型,但现在我觉得它有点复杂..

【问题讨论】:

  • 你能检查一下这行吗:dataframe = pd.DataFrame =(tradein_data,keepa_data)

标签: python excel pandas xlsx


【解决方案1】:

您不必创建新的数据框,因为您在下一行代码中将其连接起来。下面的代码应该可以工作

import pandas as pd
import numpy as np
import xlsxwriter
import warnings

open_tradein_xlsx = "Z_results.xlsx"
open_keepa_xlsx =  "keepa_data.xlsx"

with warnings.catch_warnings(record=True):
    warnings.simplefilter("always")
    keepa_data = pd.read_excel(open_keepa_xlsx, usecols=['Used: Lowest'])
    tradein_data = pd.read_excel(open_tradein_xlsx, index_col=0,)

data = pd.concat([tradein_data, keepa_data], axis=1, ignore_index=True)
print(data)

【讨论】:

  • 感谢您的帮助!我已经在 pd.concat 中尝试过 axis=1,但是当我这样做时,我得到以下错误:pandas.errors.InvalidIndexError: Reindexing only valid with uniquely valued Index objects
  • 问题可能是“Z_results.xlsx”是由另一个使用 pd.Dataframe 和 pd.concat 的代码创建的。我也会将其他代码附加到我的问题中
  • 上面的代码对我有用,你能把你的输入数据在excel中的样子截图吗
  • keepa 的一部分对于截图来说太长了ibb.co/CwWzfKb // 不幸的是 Zresults 看起来真的很乱,我已经尝试了几个小时来创建一个像 keepa_excel 这样的干净的 Excel 但它只是没有工作。
猜你喜欢
  • 2017-01-31
  • 2020-04-16
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 2019-11-08
  • 2021-04-10
  • 2019-02-02
  • 1970-01-01
相关资源
最近更新 更多