При попытке разделить значения в столбце «Актеры» моего фрейма данных с помощью функции str.split () серии Pandas я получаю больше значений, чем указано в разделениях:
df['Actors'] = df['Actors'].str.split(",",n=3)
1 [timrobbins, morganfreeman, bobgunton, william...
2 [marlonbrando, alpacino, jamescaan, richardsca...
3 [alpacino, robertduvall, dianekeaton, robertde...
4 [christianbale, heathledger, aaroneckhart, mic...
5 [martinbalsam, johnfiedler, leejcobb, egmarshall]
Если я пытаюсь нарезать вышеупомянутые результаты, используя приведенный ниже фрагмент, тогда в результатах начинают появляться NaN:
df['Actors'] = df['Actors'].str.split(",",n=3)[:3]
df['Actors'].head()
1 [timrobbins, morganfreeman, bobgunton, william...
2 [marlonbrando, alpacino, jamescaan, richardsca...
3 [alpacino, robertduvall, dianekeaton, robertde...
4 NaN
5 NaN
Name: Actors, dtype: object
В качестве альтернативы, если я пытаюсь использовать фрагмент с функцией применения, как показано ниже, достигаются надлежащие результаты:
df['Actors'] = df['Actors'].apply(lambda x: x.split(",")[:3])
df['Actors'].head()
1 [timrobbins, morganfreeman, bobgunton]
2 [marlonbrando, alpacino, jamescaan]
3 [alpacino, robertduvall, dianekeaton]
4 [christianbale, heathledger, aaroneckhart]
5 [martinbalsam, johnfiedler, leejcobb]
Name: Actors, dtype: object
Я хотел бы знать, почему происходит такая аномалия и как правильно использовать функцию str.split () в этом случае?
Для дальнейшей проверки данных вы можете использоватьНиже приведен фрагмент кода для самостоятельной загрузки данных:
df = pd.read_csv('https://query.data.world/s/uikepcpffyo2nhig52xxeevdialfl7',index_col=0)