dataframe想把每一列变成一个变量
时间: 2023-09-22 09:05:46 浏览: 159
### 回答1:
可以使用 pandas 的 `melt()` 函数来实现。该函数允许您将多个列转换为两列:一列是变量名称,另一列是值。
使用方法为:
```
df = df.melt(id_vars=['列名1', '列名2', ...], value_vars=['列名3', '列名4', ...], var_name='变量名', value_name='值')
```
- id_vars:指定保留的列。
- value_vars:指定转换为变量的列。
- var_name:新列的列名,用于存储变量名。
- value_name:新列的列名,用于存储变量值。
如果想把所有列都变成变量,可以这样写:
```
df = df.melt(var_name='变量名', value_name='值')
```
示例:
```
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
df = df.melt(var_name='列名', value_name='值')
```
结果 :
```
列名 值
0 A 1
1 A 2
2 A 3
3 B 4
4 B 5
5 B 6
6 C 7
7 C 8
8 C 9
```
### 回答2:
要将DataFrame的每一列变成一个变量,可以使用DataFrame的列索引和属性的方式实现。
首先,我们可以使用df.columns属性获取DataFrame的所有列索引。将其保存为一个列表。
接下来,我们可以使用for循环遍历这个列表。在每次循环中,我们可以使用该列索引作为变量名,并通过df[列索引]的方式获取该列的数据。我们可以将该列的数据保存在一个新的变量中。
如下所示是一个可能的实现:
```python
import pandas as pd
# 创建一个DataFrame
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
# 获取DataFrame的列索引
column_names = df.columns.tolist()
# 遍历列索引,将每列转为变量
for column_name in column_names:
# 使用列名作为变量名,获取该列的数据
locals()[column_name] = df[column_name].tolist()
# 打印每个变量
print(A)
print(B)
print(C)
```
运行上述代码将输出:
```
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
```
这样,我们就将DataFrame的每一列转换为了一个变量。变量名分别为'A'、'B'和'C',分别保存了各自的列数据。
阅读全文
相关推荐


















