Понимание списка назначений панд - PullRequest
0 голосов
/ 06 июня 2018

Как мне использовать списки или другие методы для рефакторинга кода, который у меня есть?Я работаю над DataFrame, изменяя значения в первом примере и добавляя новые столбцы во втором.

Пример 1

df['start_d'] = pd.to_datetime(df['start_d'],errors='coerce').dt.strftime('%Y-%b-%d')
df['end_d'] = pd.to_datetime(df['end_d'],errors='coerce').dt.strftime('%Y-%b-%d')

Пример 2

df['col1']  = 'NA'
df['col2'] = 'NA'

Я бы предпочел не использовать apply , просто потому что это увеличит количество строк

1 Ответ

0 голосов
/ 06 июня 2018

Я думаю, что нужно просто цикл, особенно если хотите избежать применения и много столбцов:

cols = ['start_d','end_d']

for c in cols:
    df[c] = pd.to_datetime(df[c],errors='coerce').dt.strftime('%Y-%b-%d')

Если необходимо list comprehension необходимо concat, потому что результат list of Series:

comp = [pd.to_datetime(df[c],errors='coerce').dt.strftime('%Y-%b-%d') for c in cols]
df = pd.concat(comp, axis=1)

Но все же здесь возможно решение с apply:

df[cols]=df[cols].apply(lambda x: pd.to_datetime(x ,errors='coerce')).dt.strftime('%Y-%b-%d')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...