Я создал фрейм данных, а затем использовал pivot_table для переноса данных из строк в столбцы.Python Pandas - Fillna (method = ffill) приводит к NameError
In [3]: df = pd.read_csv('Transform.csv')
In [7]: pivot = pd.pivot_table(df, values='Value', index="Structure", columns='Type')
ranges = pivot.filter(items=['Min','Mid','Max'])
print(ranges)
Type Min Mid Max
Structure
AE_BA10 456 543 756
AE_BA12 0 0 0
AE_BA14 0 0 0
AE_BA16 0 0 0
После того как я сделать обновление значений я хотел бы изменить данные из столбцов в строки, так что я укладывал данные обратно.
In [6]: ranges.stack()
Out[6]: Structure Type
AE_BA10 Min 456
Mid 543
Max 756
AE_BA12 Min 0
Mid 0
Max 0
AE_BA14 Min 0
Mid 0
Max 0
AE_BA16 Min 0
Mid 0
Max 0
Я пытаюсь получить данные в столбце «Структура», чтобы повторить заголовки строк так выглядеть следующим образом:
Structure Type
AE_BA10 Min 456
AE_BA10 Mid 543
AE_BA10 Max 756
AE_BA12 Min 0
AE_BA12 Mid 0
AE_BA12 Max 0
AE_BA14 Min 0
AE_BA14 Mid 0
AE_BA14 Max 0
AE_BA16 Min 0
AE_BA16 Mid 0
AE_BA16 Max 0
Я попытался с помощью fillna (метод = ffill) но я получаю с ним имяError.
In [8]: ranges.fillna(method=ffill)
NameError Traceback (most recent call last) in() ----> 1 ranges.fillna(method=ffill)
NameError: name 'ffill' is not defined
Может кто-нибудь, пожалуйста, дайте мне знать, что я делаю неправильно?
EDIT: Я помещаю ffill в кавычки, но он все еще не заполняет структуру до конца.
In [19]: stacked.fillna(method='ffill')
Out[19]:
Structure Type
AE_BA10 Min 456
Mid 543
Max 756
AE_BA12 Min 0
Mid 0
Max 0
AE_BA14 Min 0
Mid 0
Max 0
AE_BA16 Min 0
Mid 0
Max 0
dtype: float64
Окончательный вариант: решение Ако работало.
In [37]: ranges.stack().reset_index(level=0)
Structure 0
Type
Min AE_BA10 456
Mid AE_BA10 543
Max AE_BA10 756
Min AE_BA12 0
Mid AE_BA12 0
Max AE_BA12 0
вам нужно поставить ffill в кавычки - вы передаете его как имя, поэтому python считает ссылку на объект. – ako
Спасибо, я попробовал поместить его в кавычки, но он до сих пор не заполняет «Структура» до конца. – Tony