将列添加到pandas DataFrame

时间:2016-12-23 16:46:18

标签: python-3.x pandas

我想为pandas DataFrame列添加属性,例如管理标签或单元。

df = pd.DataFrame([[1, 2], [5, 6]], columns=['A', 'B'])
df['A'].units = 'm/s'

调用列的单位(df['A'].units)会返回m/s

但是,在任何DataFrame到Series操作之后,属性会丢失,例如添加新列:

df['C'] = [3, 8]
df['A'].units
  

AttributeError:'Series'对象没有属性'units'

是否有保留属性的方法或添加列的替代方法?

1 个答案:

答案 0 :(得分:1)

_metadata,不是公共API的一部分。 不是一个稳定的方式这样做,现在仍然是

In [8]: df = pd.DataFrame([[1, 2], [5, 6]], columns=['A', 'B'])

In [9]: df['A']._metadata
Out[9]: ['name']

In [10]: df['A']._metadata.append({'units': 'm/s'})

In [11]: df['C'] = [3, 8]

In [12]: df['A']._metadata
Out[12]: ['name', {'units': 'm/s'}]