Понимание использования x.name в pandas DataFrame - PullRequest
0 голосов
/ 13 марта 2020

Меня смущает использование apply и x.name в следующем примере:

df = pd.DataFrame(np.array([[1, 0, 0], [4, 5, 0], [7, 8, 9], [7, 8, 9], [4, 5, 0], [7, 8, 9]]), 
              columns=['a', 'b', 'c'], 
              index = ['1/1/2000', '1/1/2001', '1/1/2002', '1/1/2003', '1/1/2004', '1/1/2005'])

s = df.ne(0).cumsum().eq(0).sum()

df = df.apply(lambda x: x.shift(periods = -s[x.name], fill_value = 0))

Последний df имеет нормализованные значения, основанные на обсуждении здесь .

Я понимаю разницу между map, apply и applymap . Также я читаю объяснение x.name здесь .

Тем не менее, я все еще запутался в двух вещах:

почему в сценарии ios, как это, мы используем apply а не applymap, так как мы получаем поэтапный результат операции из того, что я понимаю.

Во-вторых, и что более важно, как здесь работает x.name. Может ли кто-нибудь, пожалуйста, расширить лямбда через функцию exapounded. Если бы я хотел написать эту строку как для l oop и функционировать, как это было бы выглядеть. (x.shift и x.name не имеют смысла. Кажется, один x относится к кадру данных, а другой относится к другому, et c)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...