问题1:
我有一个带有两个月值列的数据框,分别是month1
和month2
。如果month1
列中的值不是NA
,则按month1
列对相应的amount
值求和。如果month1
列中的值是NA
,则选择相应的'month2'值并在month1
列中搜索它并执行求和。你知道吗
import pandas as pd
df = pd.DataFrame(
{
'month1': [1, 2, 'NA', 1, 4, 'NA', 'NA'],
'month2': ['NA', 5, 1, 2, 'NA', 1, 3],
'amount': [10, 20, 40, 50, 60, 70, 100]
}
)
问题1的期望输出:
month1 month2 sum_amount
0 1.0 NaN 60
1 2.0 5.0 20
2 NaN 1.0 60
3 1.0 2.0 60
4 4.0 NaN 60
5 NaN 1.0 60
6 NaN 3.0 0
问题2:
我有一个带有两个月值列的数据框,分别是month1
和month2
。如果month1
列中的值不是NA
,则按month2
列对相应的amount
值求和。如果month1
列中的值是NA
,则选择month2
的对应值并在month2
列中搜索它并执行求和。你知道吗
import pandas as pd
df = pd.DataFrame(
{
'month1': [1, 2, 'NA', 1, 4, 'NA', 'NA'],
'month2': ['NA', 5, 1, 2, 'NA', 1, 3],
'amount': [10, 20, 40, 50, 60, 70, 100]
}
)
问题2的期望输出:
month1 month2 sum_amount
0 1.0 NaN 110
1 2.0 5.0 50
2 NaN 1.0 110
3 1.0 2.0 110
4 4.0 NaN 0
5 NaN 1.0 110
6 NaN 3.0 100
首先将字符串} ,其中不匹配的值缺少值,因此用^{} 替换
NA
替换为缺少的值,然后将sum
聚合为Series
。然后对新列使用^{NaN
s,并映射另一列,最后将两列中不匹配的值替换为0
:对于第二种情况,请在同一解决方案中更改列名:
我的解决方案并不优雅,但它是有效的。看一看。你知道吗
两个问题的相同部分是:
第一个问题的解决方案:
第二个问题的解决方案:
相关问题 更多 >
编程相关推荐