【发布时间】:2019-04-01 06:47:06
【问题描述】:
我想要达到的目标。
我有两个数据框。 DF1 和 DF2。两者都是从不同的excel文件中读取的。 DF1 有 9 列和 3000 行,其中列名称之一是“代码组”。 DF2 有 2 列 20 行,其中一列名称也是“代码组”。在同一数据框中,另一列“代码管理方法”给出了代码组的解释。例如。 H001 按可回收处理,H002 按垃圾填埋处理。
会发生什么
当我使用命令 data = pd.merge(DF1,DF2, on='Code Group') 时,我只得到 10 个列名,但下面没有行。
我的期望
我希望将 DF1 和 DF2 合并,并且在代码组编号相同的地方粘贴代码管理方法以进行解释。
其他信息
Following are datatype for DF1
Entity object
Address object
State object
Site object
Disposal Facility object
Pounds float64
Waste Description object
Shipment Date datetime64[ns]
Code Group object
FollOwing are datatype for DF2
Code Management Method object
Code Group object
我尝试了什么
我尝试遵循 SO 上类似帖子的建议,即双方的数据类型应该相同,并且这里的代码组都是对象,所以不知道有什么问题。我也尝试过 Concat 功能。
代码
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
CH = "C:\Python\Waste\Shipment.xls"
Code = "C:\Python\Waste\Code.xlsx"
Data = pd.read_excel(Code)
data1 = pd.read_excel(CH)
data1.rename(columns={'generator_name':'Entity','generator_address':'Address', 'Site_City':'Site','final_disposal_facility_name':'Disposal Facility', 'wst_dscrpn':'Waste Description', 'drum_wgt':'Pounds', 'wst_dscrpn' : 'Waste Description', 'genrtr_sgntr_dt':'Shipment Date','generator_state': 'State','expected_disposal_management_methodcode':'Code Group'},
inplace=True)
data2 = data1[['Entity','Address','State','Site','Disposal Facility','Pounds','Waste Description','Shipment Date','Code Group']]
data2
merged = data2.merge(Data, on='Code Group')
收到警告
C:\Anaconda\lib\site-packages\pandas\core\generic.py:5890: SettingWithCopyWarning: 正在尝试在 DataFrame 中的切片副本上设置值
请参阅文档中的注意事项:http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self._update_inplace(new_data)
【问题讨论】:
-
在您提供一些数据展示您的问题之前,我们无法确定地解决您的问题。特别是,我们需要一个 minimal reproducible example。您需要 edit your question 将此信息作为文本(无图像/链接)。
-
仍然没有得到你在
Data中的数据 -
数据只是与实体、地址、州、产生的废物磅数有关的信息。等等从excel文件。他们都是对象..感谢您的帮助