【发布时间】:2018-01-04 04:53:56
【问题描述】:
我有以下带有一列的 python 数据框 --> CI_80。我想从“CI_80”列创建“CI80_lb”和“CI80_ub”。
CI_80 CI80_lb CI80_ub
(12.963511423826183, 15.49103403071927) 13 15
(12.287835227023837, 14.312164772976164) 12 14
(-6.4272594546429325, 27.427259454642932) n/a 27
(nan, nan) nan nan
(-19.369658165550526, 30.77319897730662) n/a 31
下面是我要实现的逻辑:
第 1 步:将 CI_80 拆分为两个附加列,以逗号 (,) 分隔
一个。下面是我试过的代码,但它出错了
df_adhoc_3['CI80_lowerbound'], df_adhoc_3['CI80_upperbound'] = zip(*df_adhoc_3['CI_80'].map(lambda x: x.split(',')))
AttributeError: 'tuple' 对象没有属性 'split'
第 2 步:将拆分后创建的两列中的数字四舍五入
第 3 步:如果 CI80_lb 为负,则列值等于 n/a
第 4 步:如果 CI_80 等于 (nan, nan),则使创建的两个列等于 nan
第 5 步:删除列中的括号
【问题讨论】:
-
您可以直接在步骤1中执行此操作:
df_adhoc_3['CI80_lowerbound'], df_adhoc_3['CI80_upperbound'] = df_adhoc_3['CI_80'] -
"ValueError: too many values to unpack (expected 2)" 当我尝试上面的代码时
-
你能打印
df_adhoc_3并显示输出吗?
标签: python split conditional rounding nan