我有一个数据集,其中包含具有if (v instanceof Map) {
Map<String, Object> subMap = flatten((Map<String, Object>) v);
subMap.keySet().stream().forEach(subkey -> result.put(k + "." + subkey, subMap.get(subkey)));
} else result.put(k, v);
格式的'9 years 9 months 14 days'
公司格式的公司资历的列。我通过str
循环使用正则表达式将它们转换为float
:
for
有效。 但是,我对更有效,更快捷的方法感兴趣(如果存在)。
答案 0 :(得分:2)
设置 :
SubClass
选项1 :
使用 MyParentClass
df = pd.DataFrame(
{'sen': ['9 years 9 months 14 days', '2 years 4 months 12 days']
})
选项2 :
str.findall
和 df['seniority'] = [
sum((float(x), float(y)/12, float(z)/365))
for x, y, z in df.sen.str.findall(r'(\d+)').values
]
# Result
sen seniority
0 9 years 9 months 14 days 9.788356
1 2 years 4 months 12 days 2.366210
和 str.extract
:
div
时间 :
sum