• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共95篇

    python3.X - 数据分析 - Pandas

关闭

返回栏目

关闭

返回python3.X - 数据分析 - Pandas栏目

20 - 创建DataFrame - 数据DataFrame

作者:

贺及楼

成为作者

更新日期:2024-08-05 22:53:59

DataFrame

表格总结

本文一共有多中创建方法,分别是字典创建、随机创建、列表创建、从嵌套列表中创建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)

1:字典创建 DataFrame

  1. import numpy as np
  2. import pandas as pd
  3. df = pd.DataFrame(data=[{'A':1,'B':2,}, {'A':3,'B':4,}])
A B
0 1 2
1 3 4

2:随机创建 DataFrame

  1. import numpy as np
  2. import pandas as pd
  3. dates=pd.date_range('2022-06-01',periods=6)
  4. 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

3:列表创建 DataFrame

  1. import pandas as pd
  2. 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

4: 从嵌套列表中创建 DataFrame

  1. df = pd.DataFrame([["11", "22", "33"], [44, 55, 66]], columns=["A", "B", "C"])
  2. print(df)
A B C
0 11 22 33
1 44 55 66

5: 使用 Series 创建 DataFrame

  • 描述:使用一个或多个 Series 对象创建 DataFrame
  • 代码
    1. s1 = pd.Series([1, 2, 3], name='Column1')
    2. s2 = pd.Series(['a', 'b', 'c'], name='Column2')
    3. df = pd.DataFrame([s1, s2])
    4. print(df)

6: 从 NumPy 数组创建 DataFrame

  • 描述:使用 NumPy 数组创建 DataFrame
  • 代码

    1. import numpy as np
    2. data = np.array([[1, 'a'], [2, 'b'], [3, 'c']])
    3. df = pd.DataFrame(data, columns=['Column1', 'Column2'])
    4. print(df)

7: 创建具有缺失值的 DataFrame

  • 描述:在创建 DataFrame 时包含缺失值。
  • 代码
    1. data = {'Column1': [1, None, 3], 'Column2': ['a', 'b', None]}
    2. df = pd.DataFrame(data)
    3. print(df)

8: 创建具有特定数据类型的 DataFrame

  • 描述:指定列的数据类型来创建 DataFrame
  • 代码
    1. data = {'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}
    2. df = pd.DataFrame(data, dtype={'Column1': 'int32', 'Column2': 'category'})
    3. print(df)

9: 创建具有索引的 DataFrame

  • 描述:为 DataFrame 设置特定的索引。
  • 代码
    1. data = {'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}
    2. index = ['row1', 'row2', 'row3']
    3. df = pd.DataFrame(data, index=index)
    4. print(df)

10: 创建多索引 DataFrame

  • 描述:使用多个索引级别来创建 DataFrame
  • 代码
    1. data = {'Column1': [1, 2, 3], 'Column2': ['a', 'b', 'c']}
    2. indexes = [pd.Index(['row1', 'row2', 'row3'], name='RowIndex'),
    3. pd.Index(['level1', 'level1', 'level2'], name='LevelIndex')]
    4. df = pd.DataFrame(data, index=indexes)
    5. print(df)

11: 创建时间序列 DataFrame

  • 描述:创建一个带有日期时间索引的 DataFrame
  • 代码
    1. data = {'Column1': [1, 2, 3]}
    2. index = pd.to_datetime(['2024-01-01', '2024-01-02', '2024-01-03'])
    3. df = pd.DataFrame(data, index=index)
    4. print(df)

12: 创建从函数生成数据的 DataFrame

  • 描述:使用函数生成的数据来创建 DataFrame
  • 代码

    1. index = range(3)
    2. def gen_data(x):
    3. return x * 2
    4. df = pd.DataFrame({'Column1': [gen_data(x) for x in index]})
    5. print(df)

13: mongodb创建、Redis创建

还有很多创建情况,一般都可以直接创建

  1. data = mongo/redis查语句
  2. df = pd.DataFrame(data = data)