如何将字符添加到特定列? [复制]
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)
【讨论】:
以上是关于如何将字符添加到特定列? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何从包含特定列中特定字符串的熊猫数据框中删除行? [复制]
Power Query:当特定值出现在另一列中时如何将一个添加到列中