我有一个 python 字典,其中包含单个或多个整数值作为字符串,如下所示:
d = {'a': ['1.20', '1', '1.10'], 'b': ['5.800', '1', '2.000'], 'c': ['9.5000', '0.9000'], 'h': ['1.90000', '6.100000'], 'l': ['1.0000', '8.00000'], 'o': '5.0000', 'p': ['3.00', '1.1000'], 'v': ['1.8', '0.0000']}
如何将其转换为 pandas DataFrame 而不借助 pandas 系列的帮助?
预期输出:
col1 col2 col3
a 1.2 1 1.1
b 5.8 1 2
c 9.5 0.9 NaN
h 1.9 6.1 NaN
l 1 8 NaN
o 5 NaN NaN
p 3 1.1 NaN
v 1.8 0 NaN
最佳答案
使用帮助器系列
:
df = pd.concat({k:pd.Series(v) for k, v in d.items()}).unstack().astype(float).sort_index()
df.columns = 'col1 col2 col3'.split()
另一种解决方案是将非列表值转换为一个元素列表,然后 DataFrame.from_dict
:
d = {k:v if isinstance(v, list) else [v] for k, v in d.items()}
df = pd.DataFrame.from_dict(d, orient='index').astype(float).sort_index()
df.columns = 'col1 col2 col3'.split()
print (df)
col1 col2 col3
a 1.2 1.0 1.1
b 5.8 1.0 2.0
c 9.5 0.9 NaN
h 1.9 6.1 NaN
l 1.0 8.0 NaN
o 5.0 NaN NaN
p 3.0 1.1 NaN
v 1.8 0.0 NaN
关于python - 将python字典的键值转换为pandas数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48827361/