numpy 如果一个字符串不存在,如何使sum为0?

zvokhttg  于 2023-10-19  发布在  其他
关注(0)|答案(2)|浏览(109)

我无法用语言来解释我想做的事情,我事先道歉。我很困惑。我有一个数据集,其中有企业环境影响数据,我已经创建了一个列,其中包含其影响类别-如果它们在总环境影响列中具有正值,则其类别为“正”,如果它们具有负值,则其类别为“负”。我在看各国的公司。如果一个国家在这两个类别中都有公司,我对此没有问题,但如果一个国家没有任何积极的国家,我就有问题制作我试图制作的图表。
以下是一个国家的工作代码,其中既有积极的和消极的类别:

usa_company_impcat = pd.crosstab(usa_company_filtered['Year'], usa_company_filtered['Impact_Category'])
usa_company_impcat['Total_Count'] = usa_company_impcat.loc[:,['Negative', 'Positive']].sum(axis = 1) # adding a total column
usa_company_impcat = usa_company_impcat.rename_axis("Year").reset_index() # fixing the year column
usa_company_impcat

这是我得到的输出
enter image description here
如果我尝试对一个只有负数行的国家执行此操作,我会得到以下错误:KeyError: "['Positive'] not in index"
有没有一个简单的方法来解决这个问题?我应该给予这些国家吗?
解决:我发现实现我想要的最简单的方法是添加一个用零填充的“Positive”列。我很抱歉我最初的问题措辞不够好。以下是其中一个没有行具有“Positive”的国家/地区的固定代码。

ROK_ind_impcat = pd.crosstab(ROK_industry['Year'], ROK_industry['Impact_Category'])
ROK_ind_impcat['Positive'] = 0 # this is the line I added to replicate a Positive column for my later graph
ROK_ind_impcat['Total_Count'] = ROK_ind_impcat.loc[:,['Negative', 'Positive']].sum(axis = 1)
ROK_ind_impcat = ROK_ind_impcat.rename_axis("Year").reset_index() # fixing the year column
ROK_ind_impcat
iszxjhcz

iszxjhcz1#

下面是如何添加一个不存在的列:

import pandas as pd

df = pd.DataFrame( {'a': [1,2,3], 'b':[4,5,6]} )
print(df)
print('After')
if 'c' not in df.columns:
    df['c'] = 0
print(df)

输出量:

a  b
0  1  4
1  2  5
2  3  6
After
   a  b  c
0  1  4  0
1  2  5  0
2  3  6  0
tsm1rwdh

tsm1rwdh2#

我想出了实现我想要的最简单的方法是添加一个用零填充的“Positive”列。我很抱歉我最初的问题措辞不够好。以下是其中一个没有行具有“Positive”的国家/地区的固定代码。

ROK_ind_impcat = pd.crosstab(ROK_industry['Year'], ROK_industry['Impact_Category'])
ROK_ind_impcat['Positive'] = 0 # this is the line I added to replicate a Positive column for my later graph
ROK_ind_impcat['Total_Count'] = ROK_ind_impcat.loc[:,['Negative', 'Positive']].sum(axis = 1)
ROK_ind_impcat = ROK_ind_impcat.rename_axis("Year").reset_index() # fixing the year column
ROK_ind_impcat

相关问题