本文一共有多中创建方法,分别是字典创建、随机创建、列表创建、从嵌套列表中创建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 np
import pandas as pd
df = pd.DataFrame(data=[{'A':1,'B':2,}, {'A':3,'B':4,}])
A | B | |
---|---|---|
0 | 1 | 2 |
1 | 3 | 4 |
import numpy as np
import pandas as pd
dates=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 pd
df = 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 np
data = 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 * 2
df = pd.DataFrame({'Column1': [gen_data(x) for x in index]})
print(df)
还有很多创建情况,一般都可以直接创建
data = mongo/redis查语句
df = pd.DataFrame(data = data)