Как использовать `apply` в python без указания имени столбца фрейма данных? - PullRequest
1 голос
/ 01 мая 2020

Я пытаюсь использовать функцию apply для фрейма данных, чтобы удалить строки из столбцов даты. Например, ниже у меня есть фрейм данных, и я хочу удалить строки из столбцов Start и Finish, используя пакет dateutil без указания имен столбцов.

df=[["1/5/2020 Yes", "5/9/2020 String",2,6],["1/8/2020 No","5/8/2020 sponge",8,9],["8/9/2020 Spine","5/8/2020 spike",8,9]]
df=pd.DataFrame(df)
df.columns=["Start","Finish","x1","x2"]

Вот моя пробная версия, но он не работает и выбрасывает KeyError Traceback (most recent call last)

df[0] = df[0].apply(dparser.parse,fuzzy=True)
df[1] = df[1].apply(dparser.parse,fuzzy=True)

Может кто-нибудь помочь мне решить эту проблему, пожалуйста?

1 Ответ

2 голосов
/ 01 мая 2020

df[0] доступ к столбцу с именем 0, которого нет в вашем фрейме данных. Вы хотите дать правильное имя, например, df['Start'] или использовать iloc: df.iloc[:,0].

. Другой способ извлечения даты - использовать шаблон regex, например:

for i in range(2):
    df.iloc[:,i] = df.iloc[:,i].str.extract('^(\S+)')[0]

Вывод:

      Start    Finish  x1  x2
0  1/5/2020  5/9/2020   2   6
1  1/8/2020  5/8/2020   8   9
2  8/9/2020  5/8/2020   8   9
...