我有以下数据帧:
Index_Date A B C D
===============================
2015-01-31 10 10 Nan 10
2015-02-01 2 3 Nan 22
2015-02-02 10 60 Nan 280
2015-02-03 10 100 Nan 250
Run Code Online (Sandbox Code Playgroud)
要求:
Index_Date A B C D
===============================
2015-01-31 10 10 10 10
2015-02-01 2 3 23 22
2015-02-02 10 60 290 280
2015-02-03 10 100 3000 250
Run Code Online (Sandbox Code Playgroud)
Column C导出用于2015-01-31通过取value的D.
然后,我需要使用value的C用于2015-01-31和乘以value的A上2015-02-01添加B.
我尝试了一个apply …
此问题的目的是进一步探索MultiIndex数据框,并向各种任务提出最佳方法的问题.
创建DataFrame
import pandas as pd
df = pd.DataFrame({'index_date' : ['12/07/2016','12/07/2016','12/07/2016','12/07/2016','12/07/2016'],
'portfolio' : ['A','B','C','D','E'],
'reporting_ccy' : ['GBP','GBP','GBP','GBP','GBP'],
'portfolio_ccy' : ['JPY','USD','USD','EUR','EUR'],
'amount' : [100,200,300,400,500],
'injection' : [1,2,3,4,5],
'to_usd' : [1.3167,1.3167,1.3167,1.3167,1.3167],
'to_ccy' : [0.009564,1,1,1.1093,1.1093],
'm5' : [2,4,6,8,10],
'm6' : [1,3,5,7,9]});
Run Code Online (Sandbox Code Playgroud)
透视DataFrame
df_pivot = df.pivot_table(index='index_date',columns=['portfolio','portfolio_ccy','reporting_ccy']).swaplevel(0, 1, axis=1).sortlevel(axis=1)
Run Code Online (Sandbox Code Playgroud)
重命名列
df_pivot.columns.names = ['portfolio','measures', 'portfolio_ccy', 'reporting_ccy']
Run Code Online (Sandbox Code Playgroud)
这产生了数据的旋转表示,使得:
我的条款4.鉴于我们有货币的xRates,实施的最佳方法是什么?
这样我们就可以创建一个数据框,例如派生的数据框:
创建DataFrame
df1 = pd.DataFrame({'index_date' : ['12/07/2016','12/07/2016','12/07/2016','12/07/2016','12/07/2016'],
'portfolio' : ['A','B','C','D','E'],
'reporting_ccy' : ['JPY','USD','USD','EUR','EUR'],
'portfolio_ccy' : ['JPY','USD','USD','EUR','EUR'],
'amount' : [13767.2522, 263.34, 395.01, 474.785901, …Run Code Online (Sandbox Code Playgroud) 我有一个数据框 df_left:
IDX1 IDX2 IDX3 IDX4 ValueType Value
0 A A1 Q 1983 Q4 W 10.123
1 A A1 Q 1983 Q4 X A
2 A A1 Q 1983 Q4 Y F
3 A A1 Q 1983 Q4 Z NaN
4 A A1 Q 1984 Q1 W 110.456
...
Run Code Online (Sandbox Code Playgroud)
从以前的帖子创建:
AND 数据框 df_right:
IDX1 IDX2 IDX3 IDX4 ValueType Value
0 A A1 Q 1983 Q4 W 10
1 A A1 Q 1983 Q4 X A
2 A A1 Q …Run Code Online (Sandbox Code Playgroud) 我最近有一台新的笔记本电脑,我想安装所有的python库。但是,其中一些只是不会安装,例如matplotlib。
关于我的计算机:具有Python 3.6的Windows 10,根据pip,这些库。
colorama (0.3.7)
Django (1.8.17)
Mathics (1.0)
mpmath (0.19)
pip (9.0.1)
python-dateutil (2.6.0)
setuptools (32.3.0)
six (1.10.0)
sympy (1.0)
wheel (0.29.0)
Run Code Online (Sandbox Code Playgroud)
“ pip install matplotlib”的结果:
错误处理c:\ users \ marvi \ appdata \ local \ programs \ python \ python36 \ lib \ site-packages \ matplotlib-2.0.0rc2-py3.6-nspkg.pth的第1行:
追溯(最近一次通话):
addpackage中的文件“ c:\ users \ marvi \ appdata \ local \ programs \ python \ python36 \ lib \ site.py”,行169
exec(行)
文件“”,第1行,位于
文件“”,第557行,位于module_from_spec中
AttributeError:'NoneType'对象没有属性'loader'
文件剩余部分被忽略
收集matplotlib
使用缓存的matplotlib-1.5.3.tar.gz
来自命令python setup.py egg_info的完整输出:
错误处理c:\ users … 我有一个数据框:
Amount dwy bmd
Portfolio EUR GBP JPY USD EUR GBP JPY USD EUR GBP JPY USD
date
2016-05-13 100 200 300 400 -0.5 0.5 0 0.8 3.8 3 0 3
Run Code Online (Sandbox Code Playgroud)
我想把它转移到这个:
date ccy amt dwy bmd
2016-05-13 EUR 100 -0.5 3.8
2016-05-13 GBP 200 0.5 3
2016-05-13 JPY 300 0 0
2016-05-13 USD 400 0.8 3
Run Code Online (Sandbox Code Playgroud)
我已经尝试过df.stack()并且df.unstack也df.T以多种方式尝试过。除了将它一块一块地拆开并重新组装之外,还有没有更好的方法?
python ×5
pandas ×4
conda ×1
dataframe ×1
for-loop ×1
iteration ×1
matplotlib ×1
numpy ×1
pip ×1
python-3.6 ×1