从Pandas数据框架中的行创建一个列表 Set 2

  • Post category:Python

从 Pandas 数据框架中的行创建一个列表,需要借助 Pandas 的 iloc 方法来确定需要提取的行,再通过列表推导式的方式将提取出的每一行转化成列表元素,最后将所有的列表元素组成一个总的列表。

具体步骤如下:

  1. 确定需要提取的行的位置。例如,假设我们需要从一个名为 df 的 Pandas 数据框架中提取第2行和第4行,则可以使用以下代码来确定需要的行:

    rows_needed = [2,4] # 需要提取的行的位置
    df.iloc[rows_needed,:] # 提取需要的行

    其中,df.iloc[rows_needed, :] 中的 : 表示提取该行的所有列。

  2. 将提取出的行转化成列表元素。可以使用列表推导式(List Comprehension)的方式将每一行转化成一个列表元素。例如,将第2行和第4行转化成列表元素的代码如下:

    rows_needed = [2,4] # 需要提取的行的位置
    result_list = [list(df.iloc[i,:]) for i in rows_needed] # 将每一行转化成列表元素

    其中,[list(df.iloc[i,:]) for i in rows_needed] 表示将需要提取的行转化成列表元素,并返回一个列表。

  3. 将所有列表元素组成一个总的列表。最后将上一步得到的所有列表元素组成一个总的列表即可。例如,将第2行和第4行转化成列表元素,并组成一个总的列表的完整代码如下:

    rows_needed = [2,4] # 需要提取的行的位置
    result_list = [list(df.iloc[i,:]) for i in rows_needed] # 将每一行转化成列表元素
    final_list = result_list # 将所有列表元素组成一个总的列表

以上是从 Pandas 数据框架中的行创建一个列表的完整攻略,下面是一个实例说明:

假设有如下的 Pandas 数据框架 df

   name  age     city
0  John   27   London
1   Bob   23  New York
2  Mary   21     Tokyo
3  Jack   29   Sydney
4   Tom   31   Madrid

如果我们需要从该数据框架中提取第2行和第4行,并转化成列表元素,则可以使用以下代码:

rows_needed = [1,3]  # 需要提取的行的位置
result_list = [list(df.iloc[i,:]) for i in rows_needed]  # 将每一行转化成列表元素
final_list = result_list  # 将所有列表元素组成一个总的列表

执行上述代码后,得到的 final_list 的值为:

[['Bob', 23, 'New York'], ['Jack', 29, 'Sydney']]

其中,final_list 中的每一个子列表都是一个列表元素,包含了提取出的一行的数据。