我有一个实现Template
函数的encoder
结构,该函数返回对Box
ed Encoder
的引用。
我还有一个实现FixedEncoder
的{{1}}结构
我可以创建Encoder
并取出Template
,但是如何测试Encoder
的功能?我只是出于测试目的而获得FixedEncoder
,因此“不安全”的解决方案很好(尽管首选安全的解决方案)
在下面的示例中,我得到了错误
FixedEncoder
示例(playground):
error[E0599]: no method named `length` found for type `&std::boxed::Box<(dyn Encoder + 'static)>` in the current scope
答案 0 :(得分:0)
我能够使用import pandas as pd
# Initialize example input dataframe
col_names = ['id', '1', 'value1', '2', 'value2', '3', 'value3']
data = [
[1, 'ph', 7, 'temp', 44, 'cond', 3],
[2, 'temp', 45, 'cond', 5, 'ph', 5],
[3, 'temp', 12, 'ph', 5, 'cond', 8],
]
df = pd.DataFrame(data, columns=col_names)
# Reshape dataframe
df2 = pd.concat([
df[['id', '1', 'value1']].rename(columns={'1': 'parameter', 'value1': 'value'}),
df[['id', '2', 'value2']].rename(columns={'2': 'parameter', 'value2': 'value'}),
df[['id', '3', 'value3']].rename(columns={'3': 'parameter', 'value3': 'value'}),
])
df2 = df2.pivot(index='id', columns='parameter', values='value')
完成此操作。
In [3]: df2
Out[3]:
parameter cond ph temp
id
1 3 7 44
2 5 5 45
3 8 5 12
添加Any
声明as_any
添加Encoder
函数as_any
上使用FixedEncoder
{{3}}
.as_any().downcast_ref().unwrap()