如何将字符添加到特定列? [复制]

Posted

技术标签:

【中文标题】如何将字符添加到特定列? [复制]【英文标题】:How to add a character to a specific column? [duplicate] 【发布时间】:2022-01-14 05:18:42 【问题描述】:

我有一个pandas.DataFrame 的表格。我将向您展示一个简单的示例。(实际上,它由数亿行数据组成。)。我想在“1”列中的字符前加上“a”。

df=

  index    1            2         3
    

    0      0           100       1
    1      1.04        100       2
    2      32          100       3
    3      5.05        105       4
    4      1.01        105       5
    5      155         105       6
    6      3155.26     105       7
    7      354.12      100       8
    8      5680.13     100       9
    9      125.55      100       10
    10     13.32       100       11
    11     5656.33     156       12
    12     456.61      156       13
    13     23.52       1235      14
    14     35.35       1235      15
    15     350.20      100       16
    16     30.         100       17
    17     13.50       100       18
    18     323.13      231       19
    19     15.11       1111      20
    20     11.22       1111      21

这是我的预期结果:

df=

  index    1            2         3
    

    0      a0           100       1
    1      a1.04        100       2
    2      a32          100       3
    3      a5.05        105       4
    4      a1.01        105       5
    5      a155         105       6
    6      a3155.26     105       7
    7      a354.12      100       8
    8      a5680.13     100       9
    9      a125.55      100       10
    10     a13.32       100       11
    11     a5656.33     156       12
    12     a456.61      156       13
    13     a23.52       1235      14
    14     a35.35       1235      15
    15     a350.20      100       16
    16     a30.         100       17
    17     a13.50       100       18
    18     a323.13      231       19
    19     a15.11       1111      20
    20     a11.22       1111      21

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

你可以使用 lambda 表达式:

df[1] = df[1].apply(lambda x: "a" + str(x))

【讨论】:

【参考方案2】:

使用+ 连接:

df[1] = 'a' + df[1].astype(str)

或者使用 f 字符串:

df[1] = df[1].map(lambda x: f'ax')

性能

#[210000 rows x 3 columns]
df = pd.concat([df] * 10000, ignore_index=True)

In [116]: %timeit df[1].map(lambda x: f'ax')
160 ms ± 3.27 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [117]: %timeit 'a' + df[1].astype(str)
147 ms ± 5.3 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [118]: %timeit df[1].apply(lambda x: "a" + str(x))
162 ms ± 17.5 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)

【讨论】:

以上是关于如何将字符添加到特定列? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从包含特定列中特定字符串的熊猫数据框中删除行? [复制]

如何将具有值的行/列添加到数据表 csv 导出

如何将工具提示添加到 primeNG 表中的特定标题列

Power Query:当特定值出现在另一列中时如何将一个添加到列中

如何将自动增量 ID 列添加到从 SQL 查询生成的表中? [复制]

如何将具有特定大小的字符复制到另一个图像中与原始图像相同的位置?