python - 对数据 Pandas 进行操作

标签 python pandas

我想创建两个新列(每年),每个列都包含每个国家/地区和每年的“否”/"is"比率。有人可以帮忙吗?

    Country  Jobs   2017    2018    
0   Spain    Yes    3885    5331
1   Spain    No     234     593 
2   Portugal Yes    1231    2424
3   Portugal No     241     124

预期输出 -

    Country  Jobs   2017    2018  Ratio2017 Ratio2018
0   Spain    Yes    3885    5331  0.06      0.11
1   Spain    No     234     593 
2   Portugal Yes    1231    2424  0.19      0.05
3   Portugal No     241     124

最佳答案

以下是计算您想要作为单独表格的比率的方法:

df_rearranged = df.set_index(['Country', 'Jobs']).unstack(level=0)
(df_rearranged.loc['No'] / df_rearranged.loc['Yes']).unstack().T
#              2017      2018
#Country                     
#Portugal  0.195776  0.051155
#Spain     0.060232  0.111236

需要一个简单的concatjoin将其添加到原始表中。

关于python - 对数据 Pandas 进行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52696762/

相关文章:

python - 合并数据帧以包含指示行属于哪些数据帧的列

python - 为什么 P4Python 无法识别 P4CONFIG 设置?

python - Python 2.x 和 3.x 的带有 args 和默认 kwargs 的函数

python - 二进制串、字节串、unicode串和普通串(str)的区别

python - 如何跟踪独特情况发生的次数

python-3.x - 从 pandas 数据框到元组(对于半正矢模块)

python - 从元组列表中修改每个元组(并最终只是删除)

python - 使用Python基于字段/列中的整数进行流量控制?

python - 使用 Python 和 Pandas 将 Excel 工作表拆分为单独的工作表

python - 计算 Pandas 中不均匀的箱子