我有以下几点:
df1=pd.DataFrame([[1,10],[2,15],[3,16]], columns=["a","b"])结果是:
a b
0 1 10
1 2 15
2 3 16我想要创建第三列"c“,其中每行中的值是列"b”中值的乘积,由同一行乘以一个数字,这取决于列"a“中的值。所以,例如
如果a中的值是1乘10×2,
如果a中的值为2乘15x5,
如果"a“中的值为3乘16x10。
实际上,我希望做到这一点:
a b c
0 1 10 20
1 2 15 75
2 3 16 160我用if和elif做了一些尝试,但是没有找到正确的解决方案。数据格式很长,列"a“中的数字1、2、3以随机顺序出现。
提前谢谢。
发布于 2020-01-30 20:17:44
你在找这样的东西吗,我已经扩展了你的数据,请检查它是否有帮助
df1=pd.DataFrame([[1,10],[2,15],[3,16],[3,11],[2,12],[1,16]], columns=["a","b"])
dict_prod = {1:2, 2:5, 3:10}
df1['c'] = df1['a'].map(dict_prod)*df1['b']
a b c
0 1 10 20
1 2 15 75
2 3 16 160
3 3 11 110
4 2 12 60
5 1 16 32发布于 2020-01-30 19:40:23
你应该能做到
df1['c'] = df['a']*your_number * df['b']或
df1['c'] = some_function(df['a']) * df['b']https://stackoverflow.com/questions/59993309
复制相似问题