我对 python 还很陌生。
我正在尝试使用 python 自动对建筑能耗数据进行一些数据分析。
我正在使用 python 2.7.3
、pandas 0.12
、Canopy 和 qtconsole
这些是我正在遵循的步骤:
- 将我的模拟软件中的数据粘贴到 Excel 中
- 从 Excel 导出为 csv
- 将 csv 导入 pandas
dataframe
- 执行我的分析
在交互式控制台中我编写以下代码
import pandas as pd
rooms = pd.read_csv('IES Results - Rooms.csv', index_col='Room # (Real)')
systems = pd.read_csv('IES Results - Systems.csv',index_col='Room #')
all_values = pd.concat([rooms,systems],axis=1)
all_values = all_values.T.drop_duplicates().T
columns = [u'Room ID',u'Room Name',u'Floor Area (m²) (Real)',u'Volume (m³) (Real)']
selected_values = all_values[columns]
不幸的是我收到以下错误
KeyError:“[u'建筑面积 (m\\xb2)(实数)' u'体积 (m\\xb3)(实数)'] 不在索引中”
正如您所看到的,所有带有上标的列都没有被正确解释,并且在数据帧
中找不到它们。
当我写作时
all_values.columns
列标题在 IPython
控制台中正确显示。然后,我复制并粘贴我感兴趣的值以创建“列”列表以传递给 'selected_values = all_values[columns]'
我做了很多研究,但我无法理解它。
我尝试指定各种编码,但我不太明白它发生了什么。
我已经被困了一天多了。
你能帮忙吗?
最佳答案
好吧,如果我做这样的事情,
1) 摆脱 Excel。 - 你需要它吗。为什么你的模拟程序不自行转储数据?如果不能,则不要粘贴到 Excel,而是将其粘贴到 txt 文件并从 Python 解析
2)去掉上标 - 你真的需要上标吗?我会删除这些,至少在我的分析阶段,当需要某种演示时,我会恢复它们。
关于python - read_csv 列编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21494854/