[英]Plotly: How to create a vertically stacked bar chart from a pandas dataframe?
[英]Create a pandas DataFrame from a csv stacked file
我想从以下csv文件创建一个熊猫DataFrame:
...........
EUR MS 3M;20111025;7d;1.1510;
EUR MS 3M;20111024;7d;1.1530;
EUR MS 3M;20111025;1m;1.1580;
EUR MS 3M;20111024;1m;1.1590;
...........
理想情况下,DataFrame的名称应为第一列的值(“ EUR MS 3M”),第二列的值组成的索引(“ 20111025”),DataFrame的列名称应取自第三列列(“ 7d”,“ 1m”等),并在最后一个csv列中给出相应的值(“ 1.150”等)。 我尝试了不同的方法,但是无法以正确的方式解决此问题。 我认为我应该做的第一件事应该是“解叠” csv中的值,以便首先具有对齐的索引,然后创建一个DataFrame,但实际上却不行。。。有什么线索吗? 我仅在几周前才开始学习熊猫...感谢您的帮助!
(我正在编辑问题以使事情更清楚:我想获得一个名为EUR MS 3M的数据框,其中包含诸如:
index 7d 1m
20111024 1.1530 1.1590
20111025 1.1510 1.1580
希望现在情况会更加清楚。 谢谢)
这样的事情怎么样:
In [103]: print data
EUR MS 3M;20111025;7d;1.1510
EUR MS 3M;20111024;7d;1.1530
EUR MS 3M;20111025;1m;1.1580
EUR MS 3M;20111024;1m;1.1590
In [104]: frame = pd.read_csv(StringIO(data), sep=';',
names=['frame_name', 'index', 'column', 'value'])
In [105]: name = frame.ix[0, 'frame_name']
In [106]: rs = frame.ix[:, 1:].pivot('index', 'column', 'value')
In [107]: rs.name = name
In [108]: rs
Out[108]:
column 1m 7d
index
20111024 1.159 1.153
20111025 1.158 1.151
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.