将集合字典转换为pandas数据帧



我在python中有一个集合字典,类似于:

{'+++': {'---', '--0', '-00', '0--', '00-', '000'}, '0++': {'+--', '+0-', '---', '--0', '-00', '0--', '00-', '000'}}

我想把它转换成一个pandas字典,有两列:第一列是字典的索引,第二列是字符串集。当我尝试使用Dataframe.from_dict时,panda创建的列数与一集中字符串的最大数量一样多。

你可以在这里做exploded是你的字典

#d = {'+++': {'---', '--0', '-00', '0--', '00-', '000'}, '0++': {'+--', '+0-', '---', '--0', '-00', '0--', '00-', '000'}}
out = pd.Series(d).explode().reset_index(name='value')
Out[306]: 
index value
0    +++   ---
1    +++   00-
2    +++   -00
3    +++   000
4    +++   --0
5    +++   0--
6    0++   ---
7    0++   +0-
8    0++   +--
9    0++   00-
10   0++   -00
11   0++   000
12   0++   --0
13   0++   0--

或者只是

pd.Series(d).reset_index(name='value')
Out[310]: 
index                                     value
0   +++            {---, 00-, -00, 000, --0, 0--}
1   0++  {---, +0-, +--, 00-, -00, 000, --0, 0--}

我认为您应该在dict-by-list中围绕您的值。

import pandas as pd
test_dict = {
"+++": {"---", "--0", "-00", "0--", "00-", "000"},
"0++": {"+--", "+0-", "---", "--0", "-00", "0--", "00-", "000"},
}
for key, value in test_dict.items():
test_dict[key] = [value]
print(test_dict)

然后你的dict改为:

{
"+++": [{"00-", "-00", "---", "0--", "--0", "000"}],
"0++": [{"00-", "-00", "---", "+--", "0--", "+0-", "--0", "000"}],
}

最后,使用from_dict:

test_df = pd.DataFrame.from_dict(test_dict, orient="index").reset_index()
print(test_df)

这就是结果。

index                                         0
0   +++            {00-, -00, ---, 0--, --0, 000}
1   0++  {00-, -00, ---, +--, 0--, +0-, --0, 000}

如果您希望集合保持完整,可以尝试:

data = {'+++': {'---', '--0', '-00', '0--', '00-', '000'}, '0++': {'+--', '+0-', '---', '--0', '-00', '0--', '00-', '000'}}
pd.DataFrame([data.keys(), data.values()]).T
0                                         1
0  +++            {--0, -00, ---, 00-, 0--, 000}
1  0++  {--0, -00, +--, ---, 00-, 0--, 000, +0-}

我认为手动将键和值映射到特定列将适合您的问题。

a = {'+++': {'---', '--0', '-00', '0--', '00-', '000'}, '0++': {'+--', '+0-', '---', '--0', '-00', '0--', '00-', '000'}}
pd.DataFrame({'key': a.keys(), 'value': a.values()})

相关内容

最新更新