品脱熊猫中的“应用”功能出现问题

时间:2019-10-13 09:15:57

标签: python pandas pint

我目前正在试验新的pint-pandas库,并且仍在开发中。

我尝试使用pandas apply()函数一次设置几列,其中列为PintArray。这是一个最小的工作示例:

import pandas as pd
import pint
ureg = pint.UnitRegistry()
pint.PintType.ureg = ureg

def f(x):
    return x+1*ureg.day, x+2*ureg.day

def g(x):
    return x+1, x+2

print('First try/except block')
try:
    df1 = pd.DataFrame({'A':pd.Series([1,2,3,4], dtype='pint[day]'),'B':pd.Series([5,6,7,8], dtype='pint[day]')})
    df1['C'], df1['D'] = zip(*df1['A'].apply(f))
except Exception as e:
    print(e)

print('Second try/except block')
try:
    df2 = pd.DataFrame({'A':pd.Series([1,2,3,4]),'B':pd.Series([5,6,7,8])})
    df2['C'], df2['D'] = zip(*df2['A'].apply(g))
except Exception as e:
    print(e)

第二个try / except块不会引发任何异常,这意味着该方法可用于纯pandas。第一个try / except块引发以下异常:

setting an array element with a sequence.

为什么会这样?有解决方法吗?谢谢。

0 个答案:

没有答案