
本文一共有多中创建方法,分别是字典创建、随机创建、列表创建、从嵌套列表中创建df,其他方法可以参考本章上方导入数据9篇文章
| 例子编号 | 描述 | 代码示例 |
|---|---|---|
| 1 | 从字典创建 DataFrame | pd.DataFrame(data=[{'A':1,'B':2,}, {'A':3,'B':4,}]) |
| 2 | 随机创建 DataFrame | pd.DataFrame(np.random.randn(6,4),index=dates,columns=['A','B','C','D']) |
| 3 | 列表创建 DataFrame | pd.DataFrame({'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}) |
| 4 | 从嵌套列表中创建 DataFrame | df = pd.DataFrame([["11", "22", "33"], [44, 55, 66]], columns=["A", "B", "C"]) |
| 5 | 使用 Series 创建 DataFrame | pd.DataFrame([pd.Series([1, 2, 3], name='Column1'), pd.Series(['a', 'b', 'c'], name='Column2')]) |
| 6 | 从 NumPy 数组创建 DataFrame | pd.DataFrame(np.array([[1, 'a'], [2, 'b'], [3, 'c']]), columns=['Column1', 'Column2']) |
| 7 | 创建具有缺失值的 DataFrame | pd.DataFrame({'Column1': [1, None, 3], 'Column2': ['a', 'b', None]}) |
| 8 | 创建具有特定数据类型的 DataFrame | pd.DataFrame({'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}, dtype={'Column1': 'int32', 'Column2': 'category'}) |
| 9 | 创建具有索引的 DataFrame | pd.DataFrame({'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}, index=['row1', 'row2', 'row3']) |
| 10 | 创建多索引 DataFrame | pd.DataFrame({'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}, index=[pd.Index(['row1', 'row2', 'row3'], name='RowIndex'), pd.Index(['level1', 'level1', 'level2'], name='LevelIndex')]) |
| 11 | 创建时间序列 DataFrame | pd.DataFrame({'Column1': [1, 2, 3]}, index=pd.to_datetime(['2024-01-01', '2024-01-02', '2024-01-03'])) |
| 12 | 创建从函数生成数据的 DataFrame | pd.DataFrame({'Column1': [gen_data(x) for x in range(3)]}) where gen_data(x) = x * 2 |
| 13 | mongodb创建、Redis创建 | pd.DataFrame(data = data) |
import numpy as npimport pandas as pddf = pd.DataFrame(data=[{'A':1,'B':2,}, {'A':3,'B':4,}])
| A | B | |
|---|---|---|
| 0 | 1 | 2 |
| 1 | 3 | 4 |
import numpy as npimport pandas as pddates=pd.date_range('2022-06-01',periods=6)pd=pd.DataFrame(np.random.randn(6,4),index=dates,columns=['A','B','C','D'])
| A | B | C | D | |
|---|---|---|---|---|
| 2022-06-01 | 0.176463 | -0.333042 | -0.097508 | 0.636864 |
| 2022-06-02 | -1.106445 | 0.256960 | 0.475206 | 1.710576 |
| 2022-06-03 | 1.354331 | 0.273334 | -1.099408 | -2.181969 |
| 2022-06-04 | 0.633218 | 0.414069 | 0.040010 | -1.757034 |
| 2022-06-05 | 0.483448 | 0.014620 | -0.937857 | 0.907710 |
| 2022-06-06 | 0.575882 | 0.251159 | -0.417993 | -1.070914 |
import pandas as pddf = pd.DataFrame({'sex': list('AABBCFD'), 'age': [11, 12, 13, 14, 15, 16, 17]})
| sex | age | |
|---|---|---|
| 0 | A | 11 |
| 1 | A | 12 |
| 2 | B | 13 |
| 3 | B | 14 |
| 4 | C | 15 |
| 5 | F | 16 |
| 6 | D | 17 |
df = pd.DataFrame([["11", "22", "33"], [44, 55, 66]], columns=["A", "B", "C"])print(df)
| A | B | C | |
|---|---|---|---|
| 0 | 11 | 22 | 33 |
| 1 | 44 | 55 | 66 |
Series 对象创建 DataFrame。
s1 = pd.Series([1, 2, 3], name='Column1')s2 = pd.Series(['a', 'b', 'c'], name='Column2')df = pd.DataFrame([s1, s2])print(df)
DataFrame。代码:
import numpy as npdata = np.array([[1, 'a'], [2, 'b'], [3, 'c']])df = pd.DataFrame(data, columns=['Column1', 'Column2'])print(df)
DataFrame 时包含缺失值。
data = {'Column1': [1, None, 3], 'Column2': ['a', 'b', None]}df = pd.DataFrame(data)print(df)
DataFrame。
data = {'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}df = pd.DataFrame(data, dtype={'Column1': 'int32', 'Column2': 'category'})print(df)
DataFrame 设置特定的索引。
data = {'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}index = ['row1', 'row2', 'row3']df = pd.DataFrame(data, index=index)print(df)
DataFrame。
data = {'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}indexes = [pd.Index(['row1', 'row2', 'row3'], name='RowIndex'),pd.Index(['level1', 'level1', 'level2'], name='LevelIndex')]df = pd.DataFrame(data, index=indexes)print(df)
DataFrame。
data = {'Column1': [1, 2, 3]}index = pd.to_datetime(['2024-01-01', '2024-01-02', '2024-01-03'])df = pd.DataFrame(data, index=index)print(df)
DataFrame。代码:
index = range(3)def gen_data(x):return x * 2df = pd.DataFrame({'Column1': [gen_data(x) for x in index]})print(df)
还有很多创建情况,一般都可以直接创建
data = mongo/redis查语句df = pd.DataFrame(data = data)