解析单元格坐标并应用于数据列表

时间:2015-08-13 11:23:07

标签: python excel parsing

我在货币上有一个excel网格,x和y轴是相同的。 EG:

    GBP, USD, EUR
GBP
USD
EUR

数据进入网格中的每个“对”的单元格:

例如:

    GBP, USD, EUR
GBP       9     7
USD  10        11
EUR  12   8 

在我的网格中,水平标题从B1开始,行标题从A2开始。

进入网格的数据从大型列表中解析出来,数字保存在字典中:

EG:

dict = {'GBPUSD': '9', 'GBPEUR: '7', etc}

我不知何故需要解析空的excel网格,这样我才能将正确的值写入正确的单元格。不会对数据字典进行排序,例如,第一个值可能位于单元格B7中,第三个值可能位于单元格Z13中。

我目前有一个x和y单元坐标的硬编码字典,这显然是一种非常糟糕的做法。

有没有办法解析并保存,然后将数据写入正确的单元格?

(我目前正在将其写成CSV,但如果有更好的方法,那么请随意使用它,避免非本地库也会有用)

1 个答案:

答案 0 :(得分:0)

Pandas对此非常有用,尽管非原生。

import pandas as pd

dict = {'GBPUSD': '9', 'GBPEUR': '7'}

# first create an empty pandas dataframe with columns and index as specified
currencies = ['GBP', 'USD', 'EUR']
df = pd.DataFrame(index=currencies, columns=currencies)

# now you can parse the values from the dictionary and set them as values in
# the dataframe
for key, value in dict.items(): # iteritems() in python 2.7
    idx, col = key[:3], key[3:]
    df.set_value(idx, col, int(value))

# and finally write it all to an excelfile
df.to_excel('output.xlsx')