python如何把多维列表转换为dataframe

在 Python 中,我们可以使用 `pandas` 库将多维列表转换为 `DataFrame`。不同维度的多维列表转换为 `DataFrame` 的方式有所不同,下面分别针对二维、三维及更高维度列表给出具体的转换示例。

### 1. 二维列表转换为 `DataFrame`

二维列表是最常见的多维列表形式,可将其看作表格数据,每一行对应 `DataFrame` 中的一行,每一列对应 `DataFrame` 中的一列。

```python

import pandas as pd

# 定义二维列表
two_d_list = [
    [
1, 2, 3],
    [
4, 5, 6],
    [
7, 8, 9]
]


# 转换为 DataFrame
df = pd.DataFrame(two_d_list, columns=['col1', 'col2', 'col3'])
print('type(df): ',type(df))
print(df)

```

#### 代码解释:

- `pd.DataFrame(two_d_list)`:使用 `pandas` 的 `DataFrame` 构造函数将二维列表转换为 `DataFrame`。

- `columns=['col1', 'col2', 'col3']`:通过 `columns` 参数指定 `DataFrame` 的列名。

### 2. 三维列表转换为 `DataFrame`

三维列表转换为 `DataFrame` 时,通常需要将其进行一定的处理,比如将其展开成二维形式,以便于转换。

```python

import pandas as pd

# 定义三维列表
three_d_list = [
    [
        [
1, 2],
        [
3, 4]
    ],
    [
        [
5, 6],
        [
7, 8]
    ]
]


print('原三维列表: ',type(three_d_list))
print(three_d_list)

# 展开三维列表为二维列表
flattened_list = []
for sub_list_2d in three_d_list:
   
for sub_list_1d in sub_list_2d:
        flattened_list.append(sub_list_1d)


# 转换为 DataFrame
df = pd.DataFrame(flattened_list, columns=['col1', 'col2'])
print('转换后的dataframe: ',type(df))
print(df)

```

#### 代码解释:

- 首先,通过嵌套循环将三维列表展开为二维列表 `flattened_list`。

- 然后,使用 `DataFrame` 构造函数将展开后的二维列表转换为 `DataFrame`,并指定列名。

### 3. 更高维度列表转换为 `DataFrame`

对于更高维度的列表,同样需要先将其转换为二维形式,再进行 `DataFrame` 的转换。以下是一个四维列表转换的示例:

```python

import pandas as pd

# 定义四维列表
four_d_list = [
    [
        [
            [
1, 2],
            [
3, 4]
        ],
        [
            [
5, 6],
            [
7, 8]
        ]
    ],
    [
        [
            [
9, 10],
            [
11, 12]
        ],
        [
            [
13, 14],
            [
15, 16]
        ]
    ]
]


print('原高维列表: ',type(four_d_list))
print(four_d_list)

# 展开四维列表为二维列表
flattened_list = []
def flatten(lst):
   
for item in lst:
       
if isinstance(item, list):
            flatten(item)
       
else:
            flattened_list[-
1].append(item)

for sub_list_3d in four_d_list:
   
for sub_list_2d in sub_list_3d:
        flattened_list.append([])
        flatten(sub_list_2d)


# 转换为 DataFrame
df = pd.DataFrame(flattened_list, columns=['col1', 'col2','col3','col4'])
print('转换后的dataframe: ',type(df))
print(df)

```

#### 代码解释:

- 定义了一个递归函数 `flatten` 用于将多维列表展开。

- 通过嵌套循环和递归函数将四维列表展开为二维列表 `flattened_list`。

- 最后使用 `DataFrame` 构造函数将展开后的二维列表转换为 `DataFrame`,并指定列名。

通过以上示例可以看出,将多维列表转换为 `DataFrame` 的关键在于将其转换为合适的二维形式,以便于使用 `pandas` 的 `DataFrame` 构造函数进行转换。

注意:`DataFrame`始终是一个二维的表格,对于多维的数据转换为`DataFrame`的方法就是先把高维的数据进行分解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值