Python 基于dataframe中的两列值创建新dataframe
我在python中有一个dataframePython 基于dataframe中的两列值创建新dataframe,python,database,pandas,dataframe,Python,Database,Pandas,Dataframe,我在python中有一个dataframedf1,如下所示: Type Category a 1 b 2 c 3 d 4 预期产出: Type a/1 b/2 c/3 d/4 实际的数据帧比这个大得多,因此我不能为新的数据帧键入每个单元格 如何提取列并将其输出到另一个分隔了“/”的数据帧?可能使用一些for loop?使用str.cat 正确的方法是使用str.cat df['Type']=df.Type.str.cat(其他=df.Category
df1
,如下所示:
Type Category
a 1
b 2
c 3
d 4
预期产出:
Type
a/1
b/2
c/3
d/4
实际的数据帧比这个大得多,因此我不能为新的数据帧键入每个单元格
如何提取列并将其输出到另一个分隔了“/”的数据帧?可能使用一些for loop?使用str.cat
正确的方法是使用str.cat
df['Type']=df.Type.str.cat(其他=df.Category.astype(str),sep='/'))
others
包含要连接的pd.Series
,以及要使用的分隔符
结果
Type
0 a/1
1 b/2
2 c/3
3 d/4
性能比较
%%timeit
df.Type.str.cat(其他=df.Category.astype(str),sep=“/”)
>>每个回路286µs±449 ns(7次运行的平均值±标准偏差,每个1000个回路)
%%timeit
df['Type']+'/'+df['Category'].astype(str)
>>每个回路348µs±5.7µs(7次运行的平均值±标准偏差,每个1000个回路)
两种解决方案都给出了相同的结果,但是使用
str.cat
大约快20%。试试:df['Type']+'/'+df['Category'].astype(str)
哦,如果我之前需要添加一些东西怎么办?类似于C:/a/1的内容我如何才能在它前面添加C:/n?在这种情况下,您可能需要检查以下答案:如果您只需要一个简单的方法,只需按照问题上留下的第一条注释进行操作