Python 创建字符串Dataframe列,该列是Dataframe中现有列的拼接

Python 创建字符串Dataframe列,该列是Dataframe中现有列的拼接,python,pandas,dataframe,Python,Pandas,Dataframe,在我当前的数据帧中,我有一个字符串列。我想创建一个新列,它是原始字符串列的一部分,但遇到以下错误消息: 使用copyWarning设置: 试图在数据帧切片的副本上设置值。 请尝试改用.loc[row\u indexer,col\u indexer]=value” 下面是我的代码。第一部分是我创建的用于创建字符串拼接的函数,第二部分是通过将该函数应用于“Title”列来创建新的Dataframe列。“Title”列只是一个字符串数据类型 def清理(名称): 以我的名义: 产品名称=i.split

在我当前的数据帧中,我有一个字符串列。我想创建一个新列,它是原始字符串列的一部分,但遇到以下错误消息:

使用copyWarning设置:
试图在数据帧切片的副本上设置值。
请尝试改用.loc[row\u indexer,col\u indexer]=value”

下面是我的代码。第一部分是我创建的用于创建字符串拼接的函数,第二部分是通过将该函数应用于“Title”列来创建新的Dataframe列。“Title”列只是一个字符串数据类型

def清理(名称):
以我的名义:
产品名称=i.split()
新名称=产品名称[0:3]
公司=“加入(新名称)
退货公司
top_100[“公司”]=top_100[“头衔”]。申请(清理)

有人能帮我找出一种不同的方法来实现这一点并避免错误吗?谢谢!

您可以使用pandas.Series.str方法来实现这一点

top_100=pd.DataFrame([[" UVW   CV",12345],
                       ["TCR FLOW zoom",3452],
                      ["Make Me Rich please",9873]],columns=["Title","some number"])
top_100['Company']=top_100["Title"].str.split().apply(lambda x: x[0:3]).str.join(" ")
top_100

使用
Map
映射字符串函数。 请注意,您的所有功能都在我的lambda函数中

top_100['Company']=top_100['Title'].map(lambda x:''.join(x.split('')[:3])


我用
x.split('')[:3]聚合了for循环中的3行

这是一个
警告
,而不是一个
错误
。程序仍应运行并向您提供输出。如果您可以将输入和预期输出添加为文本,社区可以建议更简单/更快的方法来获得您想要的输出。如果您能添加一些关于代码的解释,那就太好了