我正拼命地尝试使用Pyxll来编写一些excel函数,这些函数获取一堆数组,在Python中加载它们,将它们转换成熊猫DataFrames,对数据进行一些处理,然后返回最终的DataFrame。现在,为了返回我找到的DataFrame pyxll示例,但是无论我如何尝试,我似乎无法将加载的excel数组转换为可以使用的熊猫DataFrames。
例如,我尝试使用下面的代码,但没有成功。也许,如果我有某种方式知道Python中加载的内容以及它的外观,也许我更有机会了解如何操作数据,但我不知道如何查看Can皮输出区域的输出。
有没有人知道从excel导入数据到python,处理数据,然后返回到excel,而不需要保存文件,加载到python,处理数据和覆盖现有文件的简单方法?
@xl_func("string[] name, var[] day, string[] method, string[] currency, numpy_array amounts, date[] dates: dataframe")
def test(name, day, method, currency, amounts, dates):
df_name = DataFrame(name, columns = ['Name'])
df_method = DataFrame(method, columns = ['Method']).ix[1:]
df_currency = DataFrame(currency, columns = ['Currency']).ix[1:]
df = df_name.join(df_method).join(df_currency)
cols = ['Name', 'Currency', 'Method']
df = df[cols]
return DataFrame(dates)发布于 2014-09-25 23:00:37
看看(我的)图书馆木翅。它使得来回发送DataFrames非常容易:
>>> from xlwings import Workbook, Range
>>> import pandas as pd
>>> wb = Workbook() # Pass in the path of a file to work with an existing Workbook
>>> df = pd.DataFrame([[1., 2.], [3., 4.]], columns=['one', 'two'])
>>> Range('A1', index=False).value = df # send it over to Excel
>>> data = Range('A1').table.value # read it back
>>> pd.DataFrame(data[1:], columns=data[0])
one two
0 1 2
1 3 4特别是关于DataFrames的文档,以及如何从VBA调用它。
发布于 2014-11-12 20:27:58
PyXLL可以使用自定义类型接收和返回熊猫数据。
看看这个例子:https://github.com/pyxll/pyxll-examples/blob/master/pandas
要查看输出,请查看日志文件。若要在Python中使用IPython提示符进行交互操作,请使用下面的示例:https://github.com/pyxll/pyxll-examples/tree/master/ipython
与其求助于指定的范围,不如坚持使用函数。
您也可以使用PyXLL注册键盘快捷键。有关自动调整数组公式:formula.py输出大小的快捷方式,请参阅此示例
如果您需要更多的帮助,请联系支持以获得快速响应。
发布于 2014-09-25 21:58:42
查看xlrd (Python2和3)、xlwt (仅限于Python2)和xlsxwriter (Python2和3)模块,以便与pandas一起使用。熊猫的代码中有它们的钩子;您可以阅读所有关于read_excel和to_excel函数这里的内容。
https://stackoverflow.com/questions/26048137
复制相似问题