Python 将字典(dict)转换为DataFrame

1.将字典转换为 Pandas DataFame 的方法
Pandas 的 DataFrame 构造函数pd.DataFrame()如果将字典的 items 作为构造函数的参数而不是字典本身,则将字典转换为 dataframe。

import pandas as pd

fruit_dict = {
    3: 'apple',
    2: 'banana',
    6:'mango',
    4:'apricot',
    1:'kiwi',
    8:'orange'}

print(pd.DataFrame(list(fruit_dict.items()),
                   columns=['Quantity', 'FruitName']))

字典的键和值将转换为DataFrame的两列,其列名如选项列中所给。
输出为:

Quantity FruitName
0         3     apple
1         2    banana
2         6     mango
3         4   apricot
4         1      kiwi
5         8    orange

2.在 Pandas DataFrame 中将键转换为列,将值转换为行的方法,我们可以简单地将字典放在方括号中,并从上面的代码中删除列名,如下所示:

import pandas as pd
fruit_dict = {
    1: 'apple',
    2: 'banana',
    3:'mango',
    4:'apricot',
    5:'kiwi',
    6:'orange'}

print(pd.DataFrame([fruit_dict]))

输出:

1       2      3        4     5       6
0  apple  banana  mango  apricot  kiwi  orange

我们将使用 pandas 的字典推导和 concat 来合并所有的字典,然后传递列表以使用新的列名
考虑以下代码,

import pandas as pd
data = {
    '1':{
        'apple':11, 
        'banana':18}, 
    '2':{
        'apple':16, 
        'banana':12}
}
df = pd.concat({k: pd.Series(v) for k, v in data.items()}).reset_index()
df.columns = ['dict_index', 'name','quantity']
print(df)

输出:

dict_index    name  quantity
0          1   apple        11
1          1  banana        18
2          2   apple        16
3          2  banana        12 

3.pandas.DataFrame()。from_dict() 方法将 dict 转换为 dataframe
我们将使用 from_dict 将 dict 转换为 dataframe,在这里我们将 orient = index 设置为使用字典键作为行并使用 rename() 方法来更改列名。

考虑以下代码,

import pandas as pd

print(pd.DataFrame.from_dict({
 'apple': 3,
 'banana': 5,
 'mango': 7,
 'apricot': 1,
 'kiwi': 8,
 'orange': 3}, orient='index').rename

(columns={0:'Qunatity'}))

输出:

Quantity
apple           3
banana          5
mango           7
apricot         1
kiwi            8
orange          3

参考:https://www.zhihu.com/question/502492711

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐