Пересылать конкретные столбцы в pandas dataframe Если у меня есть dataframe df с несколькими столбцами ['x', 'y', 'z'], то как мне пересылать только один столбец 'x' или группу столбцов ['x', 'y']? Я знаю только, как это сделать по оси. Ответ 1 ТЛ; др: cols = ['X', 'Y'] df.loc[:,col] = df.loc[:,col].ffill() И я также добавил автономный пример: >>> import pandas as pd >>> import numpy as np >>> >>> #%% create dataframe ... ts1 = [0, 1, np.nan, np.nan, np.nan, np.nan] >>> ts2 = [0, 2, np.nan, 3, np.nan, np.nan] >>> d = {'X': ts1, 'Y': ts2, 'Z': ts2} >>> df = pd.DataFrame(data=d) >>> print(df.head()) X Y Z 0 0 0 0 1 1 2 2 2 NaN NaN NaN 3 NaN 3 3 4 NaN NaN NaN >>> >>> #%% apply forward fill ... col = ['X', 'Y'] >>> df.loc[:,col] = df.loc[:,col].ffill() >>> print(df.head()) X Y Z 0 0 0 0 1 1 2 2 2 1 2 NaN 3 1 3 3 4 1 3 NaN Ответ 2 for col in ['X', 'Y']: df[col] = df[col].ffill() Ответ 3 Я использовал приведенный ниже код, здесь для X и Y метод также может отличаться от ffill(). df1 = df.fillna({ 'X' : df['X'].ffill(), 'Y' : df['Y'].ffill(), })
Ответ 1 ТЛ; др: cols = ['X', 'Y'] df.loc[:,col] = df.loc[:,col].ffill() И я также добавил автономный пример: >>> import pandas as pd >>> import numpy as np >>> >>> #%% create dataframe ... ts1 = [0, 1, np.nan, np.nan, np.nan, np.nan] >>> ts2 = [0, 2, np.nan, 3, np.nan, np.nan] >>> d = {'X': ts1, 'Y': ts2, 'Z': ts2} >>> df = pd.DataFrame(data=d) >>> print(df.head()) X Y Z 0 0 0 0 1 1 2 2 2 NaN NaN NaN 3 NaN 3 3 4 NaN NaN NaN >>> >>> #%% apply forward fill ... col = ['X', 'Y'] >>> df.loc[:,col] = df.loc[:,col].ffill() >>> print(df.head()) X Y Z 0 0 0 0 1 1 2 2 2 1 2 NaN 3 1 3 3 4 1 3 NaN
Ответ 3 Я использовал приведенный ниже код, здесь для X и Y метод также может отличаться от ffill(). df1 = df.fillna({ 'X' : df['X'].ffill(), 'Y' : df['Y'].ffill(), })