pandas dataframe from dict

pandas dataframe from dict

参考:pandas dataframe from dict

在数据分析中,我们经常需要将数据从一种格式转换为另一种格式。在Python中,我们可以使用pandas库来处理数据。pandas是一个强大的数据处理库,它提供了许多用于数据处理和分析的功能。其中,DataFrame是pandas中的一个重要数据结构,它是一个二维的表格型数据结构。我们可以将字典(dict)转换为DataFrame,这在数据处理中非常有用。

1. 创建字典

在Python中,字典是一种可变的数据类型,它存储了键值对(key-value pair)。字典的键和值可以是任何数据类型。下面是一个创建字典的示例:

dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
print(dict1)

Output:

pandas dataframe from dict

2. 将字典转换为DataFrame

我们可以使用pandas的DataFrame()函数将字典转换为DataFrame。下面是一个示例:

import pandas as pd

dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
df = pd.DataFrame(dict1)

print(df)

Output:

pandas dataframe from dict

在这个示例中,我们首先导入了pandas库,然后创建了一个字典。然后,我们使用DataFrame()函数将字典转换为DataFrame。最后,我们打印了DataFrame。

3. DataFrame的列顺序

在将字典转换为DataFrame时,DataFrame的列顺序可能会与字典的键的顺序不同。这是因为字典是无序的,而DataFrame是有序的。我们可以通过传递一个列名列表来指定DataFrame的列顺序。下面是一个示例:

import pandas as pd

dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
df = pd.DataFrame(dict1, columns=['age', 'name'])

print(df)

Output:

pandas dataframe from dict

在这个示例中,我们在创建DataFrame时传递了一个列名列表。这样,DataFrame的列顺序就会按照我们指定的顺序。

4. 字典的值是列表

当字典的值是列表时,我们可以直接将字典转换为DataFrame。每个列表都会成为DataFrame的一列。列表的长度必须相同,否则会引发错误。下面是一个示例:

import pandas as pd

dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
df = pd.DataFrame(dict1)

print(df)

Output:

pandas dataframe from dict

在这个示例中,字典的值是列表。我们可以看到,每个列表都成为了DataFrame的一列。

5. 字典的值是字典

当字典的值是字典时,我们也可以将字典转换为DataFrame。外层字典的键会成为DataFrame的列名,内层字典的键会成为DataFrame的行索引,内层字典的值会成为DataFrame的值。下面是一个示例:

import pandas as pd

dict1 = {'name': {'0': 'Tom', '1': 'Nick', '2': 'John'}, 'age': {'0': 20, '1': 21, '2': 19}}
df = pd.DataFrame(dict1)

print(df)

Output:

pandas dataframe from dict

在这个示例中,字典的值是字典。我们可以看到,外层字典的键成为了DataFrame的列名,内层字典的键成为了DataFrame的行索引,内层字典的值成为了DataFrame的值。

6. 字典的值是Series

当字典的值是pandas的Series时,我们也可以将字典转换为DataFrame。字典的键会成为DataFrame的列名,Series的索引会成为DataFrame的行索引,Series的值会成为DataFrame的值。下面是一个示例:

import pandas as pd

s1 = pd.Series([20, 21, 19], index=['0', '1', '2'])
s2 = pd.Series(['Tom', 'Nick', 'John'], index=['0', '1', '2'])
dict1 = {'age': s1, 'name': s2}
df = pd.DataFrame(dict1)

print(df)

Output:

pandas dataframe from dict

在这个示例中,字典的值是Series。我们可以看到,字典的键成为了DataFrame的列名,Series的索引成为了DataFrame的行索引,Series的值成为了DataFrame的值。

7. 字典的值是数组

当字典的值是数组时,我们也可以将字典转换为DataFrame。字典的键会成为DataFrame的列名,数组的索引会成为DataFrame的行索引,数组的值会成为DataFrame的值。下面是一个示例:

import pandas as pd
import numpy as np

arr1 = np.array([20, 21, 19])
arr2 = np.array(['Tom', 'Nick', 'John'])
dict1 = {'age': arr1, 'name': arr2}
df = pd.DataFrame(dict1)

print(df)

Output:

pandas dataframe from dict

在这个示例中,字典的值是数组。我们可以看到,字典的键成为了DataFrame的列名,数组的索引成为了DataFrame的行索引,数组的值成为了DataFrame的值。

8. 字典列表

当我们有一个字典列表时,我们也可以将其转换为DataFrame。每个字典都会成为DataFrame的一行。下面是一个示例:

import pandas as pd

dict_list = [{'name': 'Tom', 'age': 20}, {'name': 'Nick', 'age': 21}, {'name': 'John', 'age': 19}]
df = pd.DataFrame(dict_list)

print(df)

Output:

pandas dataframe from dict

在这个示例中,我们有一个字典列表。我们可以看到,每个字典都成为了DataFrame的一行。

9. 缺失值处理

在将字典转换为DataFrame时,如果字典的某些键没有值,那么DataFrame中对应的位置就会被填充为NaN。下面是一个示例:

import pandas as pd

dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, None]}
df = pd.DataFrame(dict1)

print(df)

Output:

pandas dataframe from dict

在这个示例中,字典的’age’键的第三个值是None。我们可以看到,DataFrame中对应的位置被填充为NaN。

10. DataFrame的操作

在将字典转换为DataFrame后,我们可以对DataFrame进行各种操作,例如选择列、选择行、筛选数据、排序等。下面是一些示例:

import pandas as pd

# 创建DataFrame
dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
df = pd.DataFrame(dict1)

# 选择列
name = df['name']
print(name)

# 选择行
row = df.loc[0]
print(row)

# 筛选数据
filtered = df[df['age'] > 20]
print(filtered)

# 排序
sorted_df = df.sort_values(by='age')
print(sorted_df)

Output:

pandas dataframe from dict

11. DataFrame的统计操作

我们还可以对DataFrame进行各种统计操作,例如计算平均值、求和、计算标准差等。下面是一些示例:

import pandas as pd

# 创建DataFrame
dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
df = pd.DataFrame(dict1)

# 计算平均值
mean = df['age'].mean()
print(mean)

# 求和
sum = df['age'].sum()
print(sum)

# 计算标准差
std = df['age'].std()
print(std)

Output:

pandas dataframe from dict

12. DataFrame的绘图操作

我们还可以对DataFrame进行绘图操作,例如绘制柱状图、折线图、散点图等。下面是一些示例:

import pandas as pd
import matplotlib.pyplot as plt

# 创建DataFrame
dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
df = pd.DataFrame(dict1)

# 绘制柱状图
df.plot(kind='bar')
plt.show()

# 绘制折线图
df.plot(kind='line')
plt.show()

# 绘制散点图
df.plot(kind='scatter', x='name', y='age')
plt.show()

13. DataFrame的保存和加载

我们还可以将DataFrame保存到文件中,或者从文件中加载DataFrame。下面是一些示例:

import pandas as pd

# 创建DataFrame
dict1 = {'name': ['Tom', 'Nick', 'John'], 'age': [20, 21, 19]}
df = pd.DataFrame(dict1)

# 保存到CSV文件
df.to_csv('pandasdataframe.com.csv', index=False)

# 从CSV文件加载
df = pd.read_csv('pandasdataframe.com.csv')
print(df)

Output:

pandas dataframe from dict

总结,我们可以使用pandas的DataFrame()函数将字典转换为DataFrame,这在数据处理中非常有用。我们还可以对DataFrame进行各种操作,例如选择列、选择行、筛选数据、排序、统计操作、绘图操作、保存和加载等。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程