为了账号安全,请及时绑定邮箱和手机立即绑定

如何将字符串从pandas DataFrame的一列插入到特定索引处的另一列?

如何将字符串从pandas DataFrame的一列插入到特定索引处的另一列?

尚方宝剑之说 2021-09-11 14:59:07
我的问题我们将此数组类型数据设为 m:    0   1   2   30   746200.0    IP:aWSrjjB  foldcauchy  foldcauchy(c=3.40, loc=853.32, scale=188436.01)1   1061881.5   IP:joW6uH4  johnsonsu   johnsonsu(a=-0.39, b=0.46, loc=715076.10, scale=70401.41)2   645000.0    IP:4Q3L2kB  foldcauchy  foldcauchy(c=3.94, loc=835.77, scale=184545.16)3   284375.0    IP:WLP1cdn  loglaplace  loglaplace(c=1.81, loc=-1001.33, scale=701001.33)4   666600.0    IP:kQn348T  johnsonsu   johnsonsu(a=-0.39, b=0.46, loc=715076.10, scale=70401.41)5   754678.5    IP:kQn348T  loglaplace  loglaplace(c=1.93, loc=-1087.33, scale=786087.33)第二列是每行的唯一 IP。它的类型是 str。最后一列是每一行的一堆分布。它的类型是 str。我想将唯一 IP 附加到最后一列。我的尝试我尝试使用以下代码:V = []([V.append(m[3][1]), V.append(m[1][1])])然而,这导致了错误的输出: ['loglaplace(c=1.88, loc=-932.82, scale=674382.82)', 'IP:slaL5jw']虽然我可以用 str( ['loglaplace(c=1.88, loc=-932.82, scale=674382.82)', 'IP:slaL5jw'])所需输出的示例:   0   1   2   30   746200.0    IP:aWSrjjB  foldcauchy  foldcauchy(c=3.40, loc=853.32, scale=188436.01, IP:aWSrjjB)1   1061881.5   IP:joW6uH4  johnsonsu   johnsonsu(a=-0.39, b=0.46, loc=715076.10, scale=70401.41, IP:joW6uH4)
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

就如此容易:


>>> df[3] = df[3].str[:-1] + ', ' + df['1'] + ')'

>>> df

    0   1   2   3

0   746200.0    IP:aWSrjjB  foldcauchy  foldcauchy(c=3.40, loc=853.32, scale=188436.01, IP:aWSrjjB)

1   1061881.5   IP:joW6uH4  johnsonsu   johnsonsu(a=-0.39, b=0.46, loc=715076.10, scale=70401.41, IP:joW6uH4)

2   645000.0    IP:4Q3L2kB  foldcauchy  foldcauchy(c=3.94, loc=835.77, scale=184545.16, IP:4Q3L2kB)

3   284375.0    IP:WLP1cdn  loglaplace  loglaplace(c=1.81, loc=-1001.33, scale=701001.33, IP:WLP1cdn)

4   666600.0    IP:kQn348T  johnsonsu   johnsonsu(a=-0.39, b=0.46, loc=715076.10, scale=70401.41, IP:kQn348T)

5   754678.5    IP:kQn348T  loglaplace  loglaplace(c=1.93, loc=-1087.33, scale=786087.33, IP:kQn348T)


查看完整回答
反对 回复 2021-09-11
?
三国纷争

TA贡献1804条经验 获得超7个赞

像这样的东西?

df[3].combine(df[1], lambda x, y: x.replace(")", ", {})".format(y)))

pandas.Series.combine是一个很好的函数,您可以使用它一次对两列应用转换,生成第三列或替换其中的一列。在这种情况下,它只是将第")"3 列中的尾随替换为第1 列中的值。


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 255 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信