我有一个很长的数据帧列表,并希望使用 for 循环将每个转换为 numpy 数组 X1,X2,X3 给定的 Pandas 数据帧 df1,df2,df3 在 python 中使用 for 循环

问题描述

我有一长串熊猫数据框。我需要的是为数据帧 df1 获取 numpy 数组 X1,为数据帧 df2 获取 numpy 数组 X2,为数据帧 df3 获取 numpy 数组 X3,而不是一个一个地进行。 即

X1=df1.values
X2=df2.values
X3=df3.values

想到使用 for 循环。任何人都可以帮助解决这个问题? 示例数据框:

import pandas as pd

df1=pd.DataFrame({'number':[1,2,3],'color':['Red','Green','Blue'],'symbol':['R','G','B']},columns=['number','color','symbol'])

df2=pd.DataFrame({'number':[4,5,6],'color':['Black','Yellow','Orange'],'symbol':['B','Y','O']},'symbol'])

df3=pd.DataFrame({'number':[7,8,9],'color':['Purple','White','Violet'],'symbol':['P','W','V']},'symbol'])

example dataframe df1

example output numpy array X1

解决方法

检查这是否适合您:

import pandas as pd
import numpy as np

df1=pd.DataFrame({'number':[1,2,3],'color':['Red','Green','Blue'],'symbol':['R','G','B']},columns=['number','color','symbol'])

df2=pd.DataFrame({'number':[4,5,6],'color':['Black','Yellow','Orange'],'symbol':['B','Y','O']},'symbol'])

df3=pd.DataFrame({'number':[7,8,9],'color':['Purple','White','Violet'],'symbol':['P','W','V']},'symbol'])

for i in range(1,4):
    globals()["X" + str(i)] = np.array(globals()["df" + str(i)])