如何解决如何将某些值添加到数据框?
我有两个数据框。一个数据框包含不同公司的财务数据,另一数据框包含相应的行业代码。我现在想向公司添加相应的行业代码。问题在于财务数据被包含了几年,因此公司被包含在一个数据框架中的频率要高于另一个数据框架。两个数据帧的长度都不相同,因此我不能简单地合并它们。
当然,此代码是不正确的,但希望可以帮助我阐明我的观点。
dataframe1['Industry'] = dataframe2['Industry'] if dataframe1['name'] = dataframe2['name']
Dataframe1
列名称为:年Cusip名称流动资产贸易负债
2010.0 825690100 SHUTTERSTOCK INC 90480.0 4680.0
2011.0 825690100 SHUTTERSTOCK INC 180740.0 18380.0
Dataframe2
列名称:Cusip IndustryCode
521893107 3714
605288208 2873
549463107 3661
783755101 3462
74377P203 4833
正如我所说,我只想将行业代码添加到数据框1中,这样我就可以获得所有公司以及每年的财务比率和行业代码。
BR
解决方法
在此示例中,我更改了一个值Cusip
:
df1 = pd.DataFrame({
'Year':[2010,2011],'Cusip':[825690100,825690100],'Name':['SHUTTERSTOCK INC','SHUTTERSTOCK INC'],'Current_Assets':[90480.0,180740.0],'Trade Liabilities':[4680,18380]
})
df2 = pd.DataFrame({
'Cusip':[825690100,605288208,549463107,783755101,'74377P203'],'IndustryCode':[3714,2873,3661,3462,4833]
})
df= df1.merge(df2,on='Cusip')
print(df)
Year Cusip Name Current_Assets Trade Liabilities IndustryCode
0 2010 825690100 SHUTTERSTOCK INC 90480.0 4680 3714
1 2011 825690100 SHUTTERSTOCK INC 180740.0 18380 3714
,
sygneto的回答很好。我只想添加一个情况,您在第二个数据中有重复项,这会影响输出(我添加了一些重复项):
df1 = pd.DataFrame({
'Year':[2010,18380]
})
df2 = pd.DataFrame({
'Cusip':[825690100,825690100,3714,4833]
})
# to avoid effect of possible duplicates in the outcome
df2 = df2.drop_duplicates(subset='Cusip',keep="last")
df = pd.merge(df1,df2,on='Cusip',how = 'left')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。