我有字典
my_dict={
"A": [["value-1", "value-2"], [1, 2]],
"B": [["price-1", "price-2"], [1,2]]
}我想把这本带熊猫的字典dump到csv文件中
import pandas as pd
df = pd.DataFrame.from_dict(data=my_dict, orient='index')
df.to_csv("data/mydict_11sept.csv", sep=',')输出:
A | B
________________________________________________
["value-1", "value-2"] | ["price-1", "price-2"]
[1, 2] | [1,2]预期输出:
A | B
-----------------------
value-1 | 1 | price-1 | 1
value-2 | 2 | price-2 | 2更新:给出了我的文件输出,并给出了预期的文件格式

发布于 2019-09-11 09:17:43
用enumerate进行dict理解中的预处理
d = {f'{k}_{i}': x for k, v in my_dict.items() for i, x in enumerate(v)}
df = pd.DataFrame(d)
print (df)
A_0 A_1 B_0 B_1
0 value-1 1 price-1 1
1 value-2 2 price-2 2编辑:
d = {k:list(zip(*v)) for k, v in my_dict.items()}
df = pd.DataFrame(data=d)
print (df)
A B
0 (value-1, 1) (price-1, 1)
1 (value-2, 2) (price-2, 2)或者:
d = {k:[', '.join(str(y) for y in x) for x in zip(*v)] for k, v in my_dict.items()}
df = pd.DataFrame(data=d)
print (df)
A B
0 value-1, 1 price-1, 1
1 value-2, 2 price-2, 2EDIT1:这里可以在列中创建MultiIndex:
d = {(k, i) : x for k, v in my_dict.items() for i, x in enumerate(v)}
df = pd.DataFrame(d)
print (df)
A B
0 1 0 1
0 value-1 1 price-1 1
1 value-2 2 price-2 2如果有必要,删除第二级,但不建议删除,因为按列列出的问题选择器只命名了一个列:
df.columns = df.columns.droplevel(1)
print (df)
A A B B
0 value-1 1 price-1 1
1 value-2 2 price-2 2
print (df['A'])
A A
0 value-1 1
1 value-2 2https://stackoverflow.com/questions/57885799
复制相似问题