如何解决用NA值填充字典以允许转换为pandas数据框
另一种选择是与一起使用from_dict
,orient='index'
然后进行转置:
my_dict = {'a' : [1, 2, 3, 4, 5], 'b': [1, 2, 3]}
df = pd.DataFrame.from_dict(my_dict, orient='index').T
请注意,dtype
如果您的列具有不同的类型(例如,一列中的浮点数,另一列中的字符串),则可能会遇到问题。
结果输出:
a b
0 1.0 1.0
1 2.0 2.0
2 3.0 3.0
3 4.0 NaN
4 5.0 NaN
解决方法
我有一个字典,其中包含不同时滞的计算值,这意味着它们在不同的日期开始。例如,我拥有的数据可能如下所示:
Date col1 col2 col3 col4 col5
01-01-15 5 12 1 -15 10
01-02-15 7 0 9 11 7
01-03-15 6 1 2 18
01-04-15 9 8 10
01-05-15 -4 7
01-06-15 -11 -1
01-07-15 6
其中每个标头是键,值的每一列是每个键的值(我defaultdict(list)
为此使用a
)。当我尝试运行时,pd.DataFrame.from_dict(d)
我可以理解地得到一个错误,指出所有数组的长度必须相同。是否有一种简单/简单的方法来填充或填充数字,以使输出最终成为以下数据帧?
Date col1 col2 col3 col4 col5
01-01-15 5 12 1 -15 10
01-02-15 7 0 9 11 7
01-03-15 NaN 6 1 2 18
01-04-15 NaN 9 8 10 NaN
01-05-15 NaN -4 NaN 7 NaN
01-06-15 NaN -11 NaN -1 NaN
01-07-15 NaN 6 NaN NaN NaN
还是我必须手动对每个列表执行此操作?
这是重新创建字典的代码:
import pandas as pd
from collections import defaultdict
d = defaultdict(list)
d["Date"].extend([
"01-01-15","01-02-15","01-03-15","01-04-15","01-05-15","01-06-15","01-07-15"
]
d["col1"].extend([5,7])
d["col2"].extend([12,6,9,-4,-11,6])
d["col3"].extend([1,1,8])
d["col4"].extend([-15,11,2,10,7,-1])
d["col5"].extend([10,18])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。