我在python中有一个数据框df1
,如下所示:
Type Category
a 1
b 2
c 3
d 4
预期输出:
Type
a/1
b/2
c/3
d/4
实际数据框远大于此,因此我无法为新数据框键入每个单元格。
如何提取列并将其输出到另一个以'/'分隔的数据帧?也许使用一些for循环?
答案 0 :(得分:1)
str.cat
正确的方法是使用str.cat
df['Type'] = df.Type.str.cat(others=df.Category.astype(str), sep='/')
others
包含要连接的pd.Series
和要使用的分隔符sep
。
结果
Type
0 a/1
1 b/2
2 c/3
3 d/4
%%timeit
df.Type.str.cat(others=df.Category.astype(str), sep='/')
>> 286 µs ± 449 ns per loop (mean ± std. dev. of 7 runs, 1000 loops each)
%%timeit
df['Type'] + '/' + df['Category'].astype(str)
>> 348 µs ± 5.7 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
两种解决方案都能得到相同的结果,但是使用str.cat
的速度大约快20%。