【发布时间】:2014-12-12 19:30:35
【问题描述】:
我希望能够为 DataFrame 的每一列存储“单位”信息并具有以下代码(uisng pandas v 0.14.1):
import pandas as pd
import numpy as np
import copy
# Monkey path Series:
pd.Series._metadata.append('units')
# Test it
df = pd.DataFrame(data=np.random.randn(5,2), columns=['A', 'B'])
df['A'].units = 's'
df['B'].units = 'm'
s = df['A']
print s.units # produces 's' as expected / desired
s = copy.copy(df['A'])
print s.units # crash, attribute does not exists
print s._metadata # produces ['name', 'units'] as expected
显然元数据没有正确传播。 这是故意的还是错误的? 如果是有意的,可以做些什么来完成这项工作?
【问题讨论】:
-
使用 s.copy() 将允许这样做。 2工作; __ copy__ 没有传播可能是一个错误(这是 copy.copy 调用的)
标签: python pandas metadata dataframe propagation