Python 熊猫分裂不起作用

Python 熊猫分裂不起作用,python,pandas,split,Python,Pandas,Split,这可能不是有史以来最聪明的问题,但我不知道为什么通常的分割函数会返回熊猫体内的空细胞。以下是我尝试过的两件事: 第一: 第二: def splitter(z): try: a = z.map(lambda x: x.split('by')[1]) except: a = "" return a df1['being_remixed'] = df1['file_names'].apply(splitter) “文件名”列上的字符串如下所示

这可能不是有史以来最聪明的问题,但我不知道为什么通常的分割函数会返回熊猫体内的空细胞。以下是我尝试过的两件事: 第一:

第二:

def splitter(z):
    try:
        a = z.map(lambda x: x.split('by')[1])
    except:
        a = ""
    return a
df1['being_remixed'] = df1['file_names'].apply(splitter) 
“文件名”列上的字符串如下所示: “StrandbeestinedSpiredWalkingMachinebydanowall---1043007.jpg”或 “DetailedAlienHead---1913632.jpg” 当我使用“-----”进行拆分时,它会起作用。如何解决我的问题?

您需要为每个列表选择第二个值的字符串列表,如果一个项目列表返回
NaN
,则需要:

df1['being_remixed'] = df1['file_names'].str.split('by').str[1].fillna('')
样本:

df1 = pd.DataFrame({'file_names':['WalkingMachinebydanowall----1043007.jpg',
                                  'DetailedAlienHead----1913632.jpg']})

print (df1)
                                file_names
0  WalkingMachinebydanowall----1043007.jpg
1         DetailedAlienHead----1913632.jpg

df1['being_remixed'] = df1['file_names'].str.split('by').str[1].fillna('')

print (df1)
                                file_names            being_remixed
0  WalkingMachinebydanowall----1043007.jpg  danowall----1043007.jpg
1         DetailedAlienHead----1913632.jpg                         
说明:

print (df1['file_names'].str.split('by'))
0    [WalkingMachine, danowall----1043007.jpg]
1           [DetailedAlienHead----1913632.jpg]
Name: file_names, dtype: object

print (df1['file_names'].str.split('by').str[1])
0    danowall----1043007.jpg
1                        NaN
Name: file_names, dtype: object
print (df1['file_names'].str.split('by'))
0    [WalkingMachine, danowall----1043007.jpg]
1           [DetailedAlienHead----1913632.jpg]
Name: file_names, dtype: object

print (df1['file_names'].str.split('by').str[1])
0    danowall----1043007.jpg
1                        NaN
Name: file_names, dtype: object