Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于dataframe中的两列值创建新dataframe_Python_Database_Pandas_Dataframe - Fatal编程技术网

Python 基于dataframe中的两列值创建新dataframe

Python 基于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

我在python中有一个dataframe
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?在这种情况下,您可能需要检查以下答案:如果您只需要一个简单的方法,只需按照问题上留下的第一条注释进行操作