2016-11-18 2 views
1

здесь у меня есть панд Dataframe ДФА нравится:питона-панда df.sum() по ошибке несколько столбцов Неожиданного ARG «оси»

 A B C 
0 1 2 3 
1 1 2 3 
3 1 2 3 

Тогда у меня есть список

x=['B','C'] 

Я хочу для получения суммы каждого номера каждой строки под столбцами B & C. Итак, я пишу как:

df[x].sum(axis=1).values 

Однако я получаю ошибку

TypeError: f() got an unexpected keyword argument 'axis' 

Я не понимаю, почему это приведет к ошибке. Мой код запускается в ноутбуке ipython. Не могли бы вы дать какие-либо предложения? Благодарю.

UPDATE: реальная ФР как:

    Date  Ayotte Hassan 
Date         
2016-06-29  2016-06-29 46.8 45.3 
2016-06-30  2016-06-30 46.8 45.3 
2016-07-01  2016-07-01 46.8 45.3 
2016-07-02  2016-07-02 46.8 45.3 
2016-07-03  2016-07-03 46.8 45.3 
2016-07-04  2016-07-04 46.8 45.3 
2016-07-20  2016-07-20 45.8 45.2 
2016-07-21  2016-07-21 45.8 45.2 
2016-07-22  2016-07-22 45.8 45.2 
    ...   ...   ...  ... 
2016-10-09  2016-10-09 48.0 44.5 
2016-10-10  2016-10-10 48.0 44.5 
2016-10-11  2016-10-11 46.7 44.7 
2016-10-16  2016-10-16 46.3 44.0 
2016-10-17  2016-10-17 46.3 44.0 
2016-10-18  2016-10-18 46.0 44.3 
2016-10-19  2016-10-19 45.7 45.3 
2016-10-20  2016-10-20 44.0 46.0 
2016-10-21  2016-10-21 44.0 46.0 
2016-10-22  2016-10-22 44.0 46.0 
2016-10-23  2016-10-23 44.0 46.0 

The dtypes ДФ является

Date  datetime64[ns] 
Ayotte   float64 
Hassan   float64 
dtype: object 

Затем я сделал

df = df.resample('D') 

ФР, показанная выше, данные перед ресэмплировать. Список х

x=['Ayotte','Hassan'] 

Тогда ошибка возникает, когда я запускаю этот код

print df[x].sum(axis=1).values 
+0

вы имели в виду, чтобы ваш индекс пойти 0, 1, 3 в вашем DataFrame? Потому что я сделал то же самое (с соответствующими указателями), и он работает. – pshep123

+0

@ pshep123, что не имеет значения –

+0

'.значения' является вопросом Редактировать, я беру это обратно .... Это работает для меня в любом случае – anshanno

ответ

1

Это трудно диагностировать без непрерывного примера, демонстрирующих ошибку.

Если я начну с:

import numpy 
import pandas 
df = pandas.DataFrame(
    numpy.arange(9).reshape(3, 3), 
    index=['a', 'b', 'c'], 
    columns=['X', 'Y', 'Z'] 
) 
print(df) 

Что дает:

X Y Z 
a 0 1 2 
b 3 4 5 
c 6 7 8 

, то я могу сделать:

df[['X', 'Y']].sum(axis=1) 

Чтобы получить:

a  1 
b  7 
c 13 
dtype: int64 
+0

Спасибо за ответ. Я тоже сам что-то пробовал, и ошибок нет. Мой фактический dataframe df имеет три столбца: date, person1, person2. Индекс df также является датой. Дата похожа на 2016-11-18. Под личностью 1/2 имеются номера float64. когда я пытаюсь вычислить сумму, как указано выше, я получу ошибку. –

0

В:

,Date,Ayotte,Hassan 
2016-06-29,2016-06-29,46.8,45.3 
2016-06-30,2016-06-30,46.8,45.3 
2016-07-01,2016-07-01,46.8,45.3 
2016-07-02,2016-07-02,46.8,45.3 
2016-07-03,2016-07-03,46.8,45.3 
2016-07-04,2016-07-04,46.8,45.3 
2016-07-20,2016-07-20,45.8,45.2 

Код:

import pandas as pd 

df = pd.read_csv('file.txt', index_col=0) 
df['Total'] = df[['Ayotte', 'Hassan']].sum(axis=1) 

print df 

Out:

    Date Ayotte Hassan Total 
2016-06-29 2016-06-29 46.8 45.3 92.1 
2016-06-30 2016-06-30 46.8 45.3 92.1 
2016-07-01 2016-07-01 46.8 45.3 92.1 
2016-07-02 2016-07-02 46.8 45.3 92.1 
2016-07-03 2016-07-03 46.8 45.3 92.1 
2016-07-04 2016-07-04 46.8 45.3 92.1 
2016-07-20 2016-07-20 45.8 45.2 91.0 
+0

Спасибо. Я попробовал это, но все равно получаю ту же ошибку. Однако я обнаружил, что если я удалю строку 'df = df.resample ('D')', тогда она будет работать. У вас есть представление об этом? –

+0

@Mr_Pi точно не знаю, я никогда не использовал повторный выбор. Вы используете этот образец для того, чтобы получить дату в Год-Месяц-День? Из документов это похоже на то, что вы должны называть его на основе серии 'series.resample()'. Но если все, что вам нужно, это дата в Ymd, вы должны использовать что-то вроде 'df ['in_day'] = df.my_datetime.dt.strftime ('% Y-% m-% d')' – anshanno

+1

'resample' doesn ' t верните данные. он возвращает объект группировки, вам нужно агрегировать объект 'resample', прежде чем рассматривать его как обычный фрейм данных. –

Смежные вопросы