Python 是否在for循环中添加列值?

Python 是否在for循环中添加列值?,python,pandas,Python,Pandas,我有以下Python代码(不是100%完整): 最后一条语句生成“试图在数据帧切片的副本上设置值。”警告 有更好的方法在数据框中创建新列“label”吗?您当然想使用test[“label”]=test[“name”]。apply(fun),其中fun(name)是一个函数,它接受名称并返回标签。这并不意味着您的代码是错误的,它只是一个警告。如果在将来的某个时候,您只想消除警告(而不是您的问题,这就是我评论的原因),您可以在导入熊猫后键入“pd.options.mode.chained_assi

我有以下Python代码(不是100%完整):

最后一条语句生成“试图在数据帧切片的副本上设置值。”警告


有更好的方法在数据框中创建新列“label”吗?

您当然想使用
test[“label”]=test[“name”]。apply(fun)
,其中
fun(name)
是一个函数,它接受
名称并返回
标签。这并不意味着您的代码是错误的,它只是一个警告。如果在将来的某个时候,您只想消除警告(而不是您的问题,这就是我评论的原因),您可以在导入熊猫后键入“pd.options.mode.chained_assignment=None”。
def my_function(input):
   name = input
   s = name.split('.')
   label_name = s[0]
   label = label_names.index(label_name)
   id = int(s[1])

   return label

test['label'] = test['name'].apply(lambda x: my_function(x))
def my_function(input):
   name = input
   s = name.split('.')
   label_name = s[0]
   label = label_names.index(label_name)
   id = int(s[1])

   return label

test['label'] = test['name'].apply(lambda x: my_function(x))