1

DataFrame の各列の「ユニット」情報を保存し、次のコードを使用できるようにしたい (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

どうやらメタデータが適切に反映されていないようです。これは意図的なものですか、それともバグですか? 意図的な場合、これを機能させるために何ができるでしょうか?

4

1 に答える 1

1

copy.copy(...)現在 pandas オブジェクトで動作しますが、メカニズムはメタデータを保持しません。

これを実装するための問題があります。

簡単な回避策はs.copy()、メタデータを保持するものを使用することです。

これを行う方法をより完全に文書化する問題があります。

于 2014-10-17T11:01:42.727 に答える