经验 | 嵌套 list 转 dataframe 格式
上周有朋友问了这样的问题:
一开始看到这个问题,脑海中就很疑惑:数据格式真的有点麻烦,大家在遇到类似的格式时还是尽量转换为二维列表或者 json 格式处理,处理会很方便,效率会提高很多。
好啦,下面就分享下这个麻烦格式的转化吧。跟大家提供下处理思路:
import pandas
a = [
["小A", {"2019-12-02": [55], "2019-11-29":[48]}],
["小B", {"2019-12-02": [193], "2019-11-29":[160]}]
]
# 创建所有时间字典
all_time = {}
for item in a:
d = item[1]
for time in d:
if time not in all_time:
all_time[time] = []
print(all_time)
# 构造
names = []
for item in a: # 遍历所有数据
names.append(item[0]) # 将该条数据的第一项名字加入行索引
for time in all_time: # 遍历所有时间
if time in item[1]: # 加入该条数据有的时间列
all_time[time].append(item[1][time])
else: # 没有就加为空
all_time[time].append("None")
print(names, all_time)
p_data = pandas.DataFrame(all_time, index=names)
print(p_data)
运行结果:
因为原始数据格式有点复杂。。。换种格式处理方便多了
这个必须点赞👍
有点复杂···