Я использую библиотеку pandas для создания сводных таблиц в файлах csv.Можем ли мы иметь многомерные значения в pandas pivot-table?
Обычный формат кода pivot_table - это что-то вроде нижнего кода.
tips=read_csv('tips.csv')
`table=pd.pivot_table(tips, values='tip_pct', rows=['time', 'sex'], cols='smoker')`
Мне было интересно, можем ли мы добавить более одного измерения в поле значений, например, ниже?
List=read_csv('list.csv')
table=pd.pivot_table(List, values=['Applications','Acquisitions'], rows='Sub-Product',cols='Application Date', aggfunc='sum')
Я попытался код, указанный выше, но форматирование было неправильно, поэтому я надеялся, что есть другой способ, чтобы получить его?
в конечном счете, я хочу, чтобы получить этот
http://i.stack.imgur.com/cifML.png
Все, что я могу получить сейчас
http://i.stack.imgur.com/4mbzK.png
Это часть моего исходного файла list.csv я пытаюсь конвертировать в сводную таблицу.
Application Date Sub-Product Applications Acquisitions
11/1/12 GP 1 1
11/1/12 GP 1 1
11/2/12 GP 1 1
11/2/12 GP 1 1
11/3/12 GP 1 1
11/3/12 GPF 1 1
11/4/12 GPF 1 1
11/4/12 GPF 2 2
11/5/12 GPF 1 1
11/5/12 GPF 1 1
11/6/12 GPF 1 1
This is what im trying to achieve for my pivot table.
1. Cols : Application Date
2. Row labels: Sub-Product
3. Values: Application, Acquisitions
Row Labels 11/1/2012 11/2/2012 11/3/2012
**GP**
Applications 190 207 65
Acquisitions 164 168 54
**GPF**
Applications 1391 1430 1269
Acquisitions 1124 1142 992
**Innovative Gateway**
Applications 2 1
Acquisitions 2 1
Но то, что я получаю
Sub-Product ('Applications', '1/1/13')('Applications', '1/10/13')
GP 48 134
GPF 600 1099
Innovative Gateway 1 2
это мой код:
> list=pd.read_csv("List.csv")
> df=DataFrame(list)
> table=pd.pivot_table(df,values=['Applications','Acquisitions'], rows='Sub-Product',cols='Application Date',aggfunc=np.sum)
>table.to_csv('file.csv')
Так что вопрос теперь, что я не в состоянии иметь больше чем одно значение для значений поле, и дата, похоже, перепуталась. Пожалуйста помоги!
Благодаря
Дата выпуска ценных бумаг может быть решена с
xl2["Application Date"] = pd.to_datetime(xl2["Application Date"], format="%m/%d/%y")
сейчас моя единственная проблема заключается в том, что значения поля косяк принимать более одного значения и интересно, если кто имеет какие-либо идея о том, как использовать функции stack или reshape.
Что вы имеете в виду форматирование было не так? –
Привет Энди, не могли бы вы взглянуть на ссылки, которыми я поделился? – jxn
Похоже, вы можете складывать/переформатировать в правильную форму. Скопируйте и вставьте фактический текст, а не изображение ... это, похоже, не соответствует исходным аргументам: S –