欢迎访问宙启技术站
智能推送

在Python中使用Pandas.DataFrame进行数据重塑和转换的方法

发布时间:2023-12-17 03:15:50

在Python中,Pandas是一个非常强大的数据分析库。其中的DataFrame是Pandas库的一个重要数据结构,可以用于数据的重塑和转换。

数据重塑主要包括数据透视、合并、拆分等操作,而数据转换则包括数据类型转换、数据过滤、数据排序等操作。下面我会介绍一些常用的DataFrame的方法和示例,来展示如何在Python中使用Pandas进行数据重塑和转换。

1. 数据透视:

- pivot函数:将不同的列值作为新的列

   import pandas as pd
   
   data = {'A': ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'],
           'B': ['one', 'one', 'two', 'two', 'one', 'one'],
           'C': [1, 2, 3, 4, 5, 6],
           'D': [7, 8, 9, 10, 11, 12]}
   df = pd.DataFrame(data)
   
   df_pivot = df.pivot(index='A', columns='B', values='C')
   print(df_pivot)
   

输出:

       one  two
   bar  5    4
   foo  1    3
   

2. 数据合并:

- merge函数:根据共同的列合并两个DataFrame

   import pandas as pd
   
   data1 = {'key': ['A', 'B', 'C', 'D'],
            'value': [1, 2, 3, 4]}
   data2 = {'key': ['B', 'D', 'E', 'F'],
            'value': [5, 6, 7, 8]}
   df1 = pd.DataFrame(data1)
   df2 = pd.DataFrame(data2)
   
   df_merge = pd.merge(df1, df2, on='key', how='outer')
   print(df_merge)
   

输出:

      key  value_x  value_y
   0  A    1        NaN
   1  B    2        5.0
   2  C    3        NaN
   3  D    4        6.0
   4  E    NaN      7.0
   5  F    NaN      8.0
   

3. 数据拆分:

- stack函数:将DataFrame的列转换为Series的行

   import pandas as pd
   
   data = {'A': ['foo', 'bar'],
           'B': [1, 2],
           'C': [3, 4]}
   df = pd.DataFrame(data)
   
   df_stack = df.stack()
   print(df_stack)
   

输出:

   0  A    foo
      B    1
      C    3
   1  A    bar
      B    2
      C    4
   dtype: object
   

4. 数据类型转换:

- astype函数:将列的数据类型转换为指定类型

   import pandas as pd
   
   data = {'A': ['1', '2', '3'],
           'B': ['4', '5', '6'],
           'C': ['7', '8', '9']}
   df = pd.DataFrame(data)
   
   df['A'] = df['A'].astype(int)
   df['B'] = df['B'].astype(float)
   df['C'] = df['C'].astype(str)
   print(df.dtypes)
   

输出:

   A    int64
   B    float64
   C    object
   dtype: object
   

5. 数据过滤:

- query函数:根据条件过滤DataFrame的行

   import pandas as pd
   
   data = {'A': [1, 2, 3, 4, 5],
           'B': ['one', 'two', 'three', 'four', 'five'],
           'C': [6, 7, 8, 9, 10]}
   df = pd.DataFrame(data)
   
   df_filter = df.query('A > 3')
   print(df_filter)
   

输出:

      A     B     C
   3  4  four   9
   4  5  five  10
   

6. 数据排序:

- sort_values函数:根据指定的列对DataFrame进行排序

   import pandas as pd
   
   data = {'A': [3, 2, 5, 1, 4],
           'B': ['one', 'two', 'three', 'four', 'five']}
   df = pd.DataFrame(data)
   
   df_sort = df.sort_values(by='A', ascending=True)
   print(df_sort)
   

输出:

      A        B
   3  1     four
   1  2      two
   0  3      one
   4  4     five
   2  5    three
   

以上是使用Pandas.DataFrame进行数据重塑和转换的一些常用方法和示例。Pandas的DataFrame提供了丰富的函数和功能,可以轻松进行数据的重塑和转换,大大简化了数据处理的过程。希望这些例子对你有帮助!