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

我的问题


我们将此数组类型数据设为 m:


    0   1   2   3

0   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   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)


尚方宝剑之说
浏览 273回答 2
2回答

慕森王

就如此容易:>>> df[3] = df[3].str[:-1] + ', ' + df['1'] + ')'>>> df    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   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)

三国纷争

像这样的东西?df[3].combine(df[1], lambda x, y: x.replace(")", ", {})".format(y)))pandas.Series.combine是一个很好的函数,您可以使用它一次对两列应用转换,生成第三列或替换其中的一列。在这种情况下,它只是将第")"3 列中的尾随替换为第1 列中的值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python