首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用熊猫将带有多个列表的密钥转储到csv?

如何使用熊猫将带有多个列表的密钥转储到csv?
EN

Stack Overflow用户
提问于 2019-09-11 09:12:19
回答 1查看 136关注 0票数 0

我有字典

代码语言:javascript
复制
my_dict={
"A": [["value-1", "value-2"], [1, 2]],
"B": [["price-1", "price-2"], [1,2]]
}

我想把这本带熊猫的字典dumpcsv文件中

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame.from_dict(data=my_dict, orient='index')
df.to_csv("data/mydict_11sept.csv", sep=',')

输出:

代码语言:javascript
复制
           A           |       B
________________________________________________    
["value-1", "value-2"] | ["price-1", "price-2"]
       [1, 2]          |     [1,2]

预期输出:

代码语言:javascript
复制
    A       |    B
-----------------------
value-1 | 1 | price-1 | 1
value-2 | 2 | price-2 | 2

更新:给出了我的文件输出,并给出了预期的文件格式

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-11 09:17:43

enumerate进行dict理解中的预处理

代码语言:javascript
复制
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

编辑:

代码语言:javascript
复制
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)

或者:

代码语言:javascript
复制
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, 2

EDIT1:这里可以在列中创建MultiIndex

代码语言:javascript
复制
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

如果有必要,删除第二级,但不建议删除,因为按列列出的问题选择器只命名了一个列:

代码语言:javascript
复制
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  2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57885799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档