gpt4 book ai didi

python - 在数据框中的列中的特定位置添加字符串

转载 作者:行者123 更新时间:2023-12-05 02:44:27 26 4
gpt4 key购买 nike

基本上是这样的:

hash = "355879ACB6"
hash = hash[:4] + '-' + hash[4:]
print (hash)
3558-79ACB6

I got this part above from another stackoverflow post here

但对于 DataFrame。

我只能在前后成功添加字符串,如下所示:

data ['col1'] = data['col1'] + 'teststring'

如果我尝试通过 [:amountofcharacterstocutafter] 上面的链接中的解决方案在特定位置添加值,这将类似于:

test = data[:2] + 'zz'
print (test)

它似乎不适用,因为 [:2] 运算符对数据帧的作用与对字符串的作用不同。它在前 2 行之后剪切输出。

目标:我想在某个位置添加一个'-'。假设输入行值为“TTTT1234”,输出应为“TTTT-1234”。对于每一行。

最佳答案

您可以执行您在列表中显示的操作,但数据框中有一列,因此它(有点)不同。

所以虽然你可以这样做:

hash = "355879ACB6"
hash = hash[:4] + '-' + hash[4:]

为了在数据帧上执行此操作,您至少可以通过两种方式执行此操作:

考虑这个虚拟 df:

    LOCATION    Hash
0 USA 355879ACB6
1 USA 455879ACB6
2 USA 388879ACB6
3 USA 800879ACB6
4 JAPAN 355870BCB6
5 JAPAN 355079ACB6

一个。 矢量化:最有效的方式

df['new_hash']=df['Hash'].str[:4]+'-'+df['Hash'].str[4:]

LOCATION Hash new_hash
0 USA 355879ACB6 3558-79ACB6
1 USA 455879ACB6 4558-79ACB6
2 USA 388879ACB6 3888-79ACB6
3 USA 800879ACB6 8008-79ACB6
4 JAPAN 355870BCB6 3558-70BCB6
5 JAPAN 355079ACB6 3550-79ACB6

B. 应用 lambda: 实现起来很直观,但在性能方面不太有吸引力

df['new_hash'] = df.apply(lambda x: x['Hash'][:4]+'-'+x['Hash'][4:], axis=1)

关于python - 在数据框中的列中的特定位置添加字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66493713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com