Python 如何将的某些值添加到数据帧?
我有两个数据帧。一个数据框包含不同公司的财务数据,另一个包含相应的行业代码。我现在想为公司添加相应的行业代码。问题在于,财务数据被包含了几年,因此,公司被包含在一个数据框中的频率高于另一个数据框中的频率。两个数据帧的长度不同,因此我不能简单地合并它们 当然,这段代码是不正确的,但希望它能帮助我澄清我的观点Python 如何将的某些值添加到数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧。一个数据框包含不同公司的财务数据,另一个包含相应的行业代码。我现在想为公司添加相应的行业代码。问题在于,财务数据被包含了几年,因此,公司被包含在一个数据框中的频率高于另一个数据框中的频率。两个数据帧的长度不同,因此我不能简单地合并它们 当然,这段代码是不正确的,但希望它能帮助我澄清我的观点 dataframe1['Industry'] = dataframe2['Industry'] if dataframe1['name'] = dataframe2['name'] 数据帧1
dataframe1['Industry'] = dataframe2['Industry'] if dataframe1['name'] = dataframe2['name']
数据帧1
列名称为:年度Cusip名称流动资产贸易负债
2010.0 825690100 SHUTTERSTOCK INC 90480.0 4680.0
2011.0 825690100 SHUTTERSTOCK INC 180740.0 18380.0
数据框架2
列名:Cusip行业代码
521893107 3714
605288208 2873
549463107 3661
783755101 3462
74377P203 4833
正如我所说,我只想将行业代码添加到dataframe1中,这样我就有了所有公司和每年的财务比率和行业代码
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
辛尼托的回答很好。我只想添加第二个数据中存在重复项的情况,这将影响输出(我添加了一些重复项):
请看副本。在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,825690100,605288208,549463107,783755101,'74377P203'],
'IndustryCode':[3714,3714,2873,3661,3462,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')