2016-04-06 2 views
-3

Я хотел бы построить продукты, соотношение и т.д. столбцов в кадре Пандас данных без предварительного создания нового столбца, содержащего этот продукт, соотношение и т.д. Например,Выполнение операций по математике при построении колонн Пандас Dataframe

[ df ['A']/df ['A']]. plot()

не работает. Для следующего кода:

x = np.array([[1,2,3],[4,5,6]]) 
df = pd.DataFrame(x,columns=['A','B','C']) 
[df['A']/df['B']].plot() 

Я получаю следующее сообщение об ошибке: «AttributeError:„список“объект не имеет атрибута" сюжет»

+0

** Не работает ** не полное описание проблемы, пожалуйста, отправьте образцы данных, код для создания вашего df, ошибки и желаемого вывода – EdChum

+0

Спасибо за комментарий. Я добавил код и специальное сообщение об ошибке. – Alpha

ответ

2

Операцию подразделения, которое вы делаете в этой строке:

[df['A']/df['B']].plot() 

возвращает объект списка python вместо объекта pandas.

Если вы хотите построить определенный столбец первой без добавления его в dataframe, вы можете попробовать это:

import pandas as pd 
import numpy as np 
x = np.array([[1,2,3],[4,5,6]]) 
df = pd.DataFrame(x,columns=['A','B','C']) 

df['A'].div(df['B']).plot() 

, который возвращает объект <matplotlib.axes._subplots.AxesSubplot>

+0

'(df ['A']/df ['B']). Plot()' также будет работать, кстати. Он становится списком, потому что OP использует '[]' вокруг возвращаемого объекта, чтобы избежать деления на объект matplotlib. – ayhan

+0

@ayhan Угадайте, я пропустил это. Спасибо за напоминание :)) –