Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将的某些值添加到数据帧?_Python_Pandas_Dataframe - Fatal编程技术网

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')