我想使用Pandas的apply方法来创建一个新列,即使DataFrame是空的,我也希望这种功能具有失败保护性。以下是一个最小化的示例,能够按预期工作:
df = pd.DataFrame(np.array([[1,2],[3,4]]), columns=['a','b']) # two columns
add = lambda x: x['a'] + x['b'] # add column a and b # add two values
df['c'] = df.apply( add, axis=1 ) # creates new column c, as anticipated
然而,当df为空时会出现问题。考虑以下示例,其中DataFrame现在为空,但是其他方面相等:
df = pd.DataFrame( columns=['a','b']) # two columns, but no values
df['c'] = df.apply( add, axis=1 ) # raises an error!
如何安全地执行这个最后一列,以便将列“c”附加到DataFrame中,即使df为空也是如此?
有趣的是,这样做可以正常工作。
df.apply( add, axis=1 )
但无法附加为列“c”。