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