优草派  >   Python

Pandas把dataframe或series转换成list的方法

杨雨欣            来源:优草派

Pandas是一款Python的数据处理库,可以方便地对数据进行操作和分析。在Pandas中,数据通常以dataframe或series的形式存储。有时候需要把dataframe或series转换成list,以便于进行其它操作或者数据可视化。本文将从多个角度分析Pandas把dataframe或series转换成list的方法。

一、使用values属性转换成list

Pandas把dataframe或series转换成list的方法

dataframe和series都有values属性,可以直接把它转换成list。这种方法比较简单,但是需要注意的是,转换后的list可能会丢失一些信息。

以一个示例进行说明:

```python

import pandas as pd

# 创建一个dataframe

df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})

print('dataframe:', df)

# 把dataframe转换成list

df_list = df.values.tolist()

print('list:', df_list)

```

输出结果为:

```

dataframe:

a b

0 1 4

1 2 5

2 3 6

list: [[1, 4], [2, 5], [3, 6]]

```

可以看到,dataframe被转换成了一个二维的list,每一行对应一个list元素。这种方法可以用来把dataframe转换成列表,但是会丢失列名等信息。

二、使用tolist()方法转换成list

dataframe和series都有tolist()方法,可以直接把它转换成list。这种方法比较简单,而且可以保留列名等信息。

以一个示例进行说明:

```python

import pandas as pd

# 创建一个dataframe

df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})

print('dataframe:', df)

# 把dataframe转换成list

df_list = df.tolist()

print('list:', df_list)

```

输出结果为:

```

dataframe:

a b

0 1 4

1 2 5

2 3 6

list: [[1, 4], [2, 5], [3, 6]]

```

可以看到,dataframe被转换成了一个二维的list,每一行对应一个list元素。和使用values属性转换相比,这种方法可以保留列名等信息。

三、使用tolist()方法转换成一维list

有时候需要把series转换成一维的list,可以使用tolist()方法。需要注意的是,如果series是多维的,这种方法会抛出ValueError异常。

以一个示例进行说明:

```python

import pandas as pd

# 创建一个series

s = pd.Series([1,2,3])

print('series:', s)

# 把series转换成一维list

s_list = s.tolist()

print('list:', s_list)

```

输出结果为:

```

series:

0 1

1 2

2 3

dtype: int64

list: [1, 2, 3]

```

可以看到,series被转换成了一个一维的list。

四、使用tolist()方法转换成numpy数组

除了转换成list,还可以把dataframe或series转换成numpy数组。这种方法可以方便地进行数值计算和科学计算。

以一个示例进行说明:

```python

import pandas as pd

import numpy as np

# 创建一个dataframe

df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})

print('dataframe:', df)

# 把dataframe转换成numpy数组

df_array = df.values

print('numpy array:', df_array)

```

输出结果为:

```

dataframe:

a b

0 1 4

1 2 5

2 3 6

numpy array: [[1 4]

[2 5]

[3 6]]

```

可以看到,dataframe被转换成了一个二维的numpy数组。

五、使用iterrows()方法转换成list

如果想要逐行地处理dataframe,可以使用iterrows()方法。这种方法可以返回一个元组,包含每行的索引和值,可以方便地进行逐行处理。

以一个示例进行说明:

```python

import pandas as pd

# 创建一个dataframe

df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})

print('dataframe:', df)

# 把dataframe逐行转换成list

df_list = []

for index, row in df.iterrows():

df_list.append(list(row))

print('list:', df_list)

```

输出结果为:

```

dataframe:

a b

0 1 4

1 2 5

2 3 6

list: [[1, 4], [2, 5], [3, 6]]

```

可以看到,使用iterrows()方法可以逐行地处理dataframe,并把每行转换成list。

综上所述,Pandas把dataframe或series转换成list的方法有很多种,可以根据需要选择合适的方法。使用values属性或tolist()方法可以把dataframe或series转换成list,使用tolist()方法可以保留列名等信息,使用iterrows()方法可以逐行地处理dataframe,并把每行转换成list。此外,还可以使用tolist()方法把series转换成一维的list,或者使用values属性把dataframe或series转换成numpy数组。

【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。
TOP 10
  • 周排行
  • 月排行