根据pandas数据框中的两列值创建一个新的数据框

时间:2020-07-02 14:38:53

标签: python database pandas dataframe

我在python中有一个数据框df1,如下所示:

Type Category
a      1
b      2
c      3
d      4

预期输出:

Type
a/1 
b/2
c/3
d/4

实际数据框远大于此,因此我无法为新数据框键入每个单元格。

如何提取列并将其输出到另一个以'/'分隔的数据帧?也许使用一些for循环?

1 个答案:

答案 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%。

相关问题