如何在for循环中将数据帧转换为数组

问题描述 投票:0回答:2

我从多个 csv 文件导入数据,创建多个数据框。我需要对其余代码使用 for 循环,并且对于该代码,我需要将数据帧放在数组中。

我尝试将所有数据帧放入一个列表中,想法是循环可以一次针对一个数据集执行其任务。 这基本上就是我目前所拥有的。

data_sets=[data1,data2,data3]
for x in data_sets:
   y=data[x].to_numpy()

我不断收到 TypeError:列表索引必须是整数或切片,而不是 DataFrame 任何帮助将不胜感激。

python pandas dataframe
2个回答
0
投票

试试这个。我相信这只是你的拼写错误。

data_sets = [data1, data2, data3]

for df in data_sets:
    y = df.to_numpy()

0
投票
import pandas as pd
import numpy as np

data1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
data2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})
data3 = pd.DataFrame({'A': [13, 14, 15], 'B': [16, 17, 18]})

data_sets = [data1, data2, data3]

arrays = []

首先你需要使用 df.to_numpy() 将 df 转换为 numpy。之后,你可以将你的 df 添加到数组中。

for dfin data_sets:
    array = df.to_numpy()
    arrays.append(array)

然后打印

numpy
数组。

for i, array in enumerate(arrays):
    print(f"Array {i+1}:")
    print(array)
    print()
© www.soinside.com 2019 - 2024. All rights reserved.