我有一个 Dataframe df
。
其中一列被命名Adress
并包含一个字符串。
我创建了一个函数processing(string)
,它以字符串 a 作为参数返回该字符串的一部分。
我成功地将函数应用于 df 并在其中创建了一个新列df
:
df.loc[:, 'new_col_name`] = df.loc[:, 'Adress`].apply(processing)
我以返回两个字符串的方式修改了我的函数processing(string)
。我希望返回的第二个字符串存储在另一个新列中。为此,我尝试按照中给出的步骤:通过应用具有多个返回的函数创建多个熊猫数据框列
这是我的功能的一个例子processing(string)
:
def processing(string):
#some processing
return [A_string, B_string]
我还尝试在 a 中返回两个字符串tuple
。
以下是我尝试将该函数应用于我的 df 的不同方法:
df.loc[:, '1st_new_col'], df.loc[:, '2nd_new_col'] = df.loc[:, 'Adress'].apply(processing)
>>> ValueError: too many values to unpack (expected 2)
#or
df.loc[:, '1st_new_col'], df.loc[:, '2nd_new_col'] = df.loc[:, 'Adress'].astype(str).apply(processing)
>>> ValueError: too many values to unpack (expected 2)
#or
df.loc[:, ['1st_new_col', '2nd_new_col']] = df.loc[:, 'Adress'].apply(processing)
>>> KeyError: "None of [Index(['1st_new_col', '2nd_new_col'], dtype='object')] are in the [columns]"
#or
df.loc[:, ['1st_new_col', '2nd_new_col']] = df.loc[:, 'Adress'].apply(processing, axis=1)
>>> TypeError: processing() got an unexpected keyword argument 'axis'
#or
df.loc[:, ['1st_new_col', '2nd_new_col']] = df.apply(lambda x: processing(x['Adress'], axis=1)
>>> KeyError: "None of [Index(['1st_new_col', '2nd_new_col'], dtype='object')] are in the [columns]"
#or
df.loc[:, ['1st_new_col', '2nd_new_col']] = df.apply(lambda x: processing(x['Adress'].astype(str), axis=1)
>>> AttributeError: 'str' object has no attribute 'astype'
#This is the only Error I could understand
#or
df.loc[:, ['1st_new_col', '2nd_new_col']] = df.apply(lambda x: processing(x['Adress'])
>>> KeyError: 'Adress'
我想我很接近,但我不知道如何获得它。