Python 将多个numpy数组批量转换为数据帧
下面的脚本将多个方阵转换为数据帧,首先手动转换,然后作为循环函数,并以相同的方式标记它们的行和列Python 将多个numpy数组批量转换为数据帧,python,pandas,matrix,Python,Pandas,Matrix,下面的脚本将多个方阵转换为数据帧,首先手动转换,然后作为循环函数,并以相同的方式标记它们的行和列 import numpy as np import pandas as pd from numpy.random import rand A1 = rand(3,3) A2 = A1*2 A3 = A1*3 #example square matrices, no math pattern implied labels = ['a','b','c'] 手动转换: A1 = pd.DataFra
import numpy as np
import pandas as pd
from numpy.random import rand
A1 = rand(3,3)
A2 = A1*2
A3 = A1*3 #example square matrices, no math pattern implied
labels = ['a','b','c']
手动转换:
A1 = pd.DataFrame(A1, index=labels, columns=labels)
A2 = pd.DataFrame(A2, index=labels, columns=labels)
A3 = pd.DataFrame(A2, index=labels, columns=labels)
批量转换(循环):
我想分别返回单独的数据帧,唯一命名,而不是在一个没有名称的列表中聚在一起,但不知道如何:
返回A1、A2、A3
函数应该足够灵活,可以批量转换传递到函数中的任意数量的数组,而不仅仅是3个
def批次_df(l):
...
返回ll
#编辑预期的返回值
A1、A2、A3=批次号(A1、A2、A3)
(我不太明白你的问题)
或
将numpy作为np导入
作为pd进口熊猫
从numpy.random导入rand
my_dfs={}
my_dfs['A1']=兰特(3,3)
my_dfs['A2']=my_dfs['A1']*2
my_dfs['A3']=my_dfs['A1']*3
标签=['a'、'b'、'c']
#----------#
#做事#
#----------#
def批次_df(d):
#在数据帧上循环
对于k,d.items()中的A:
#更新值
my_dfs[k]=pd.DataFrame(A,索引=标签,列=标签)
#不需要返回-->字典是通过引用的
批次df(我的df)
res:my_dfs['A1']
a b c
a 0.501693 0.506768 0.315132
b 0.382843 0.116506 0.194385
c 0.208627 0.033067 0.121261
问题中的
ll
是一个列表。但在该列表中有单独的对象。使函数输出ll
本身只给出一个输出。相反,我希望从函数中输出3个或更多对象,从ll
的内容中解包,但是如果您提供了等量的期望值-->A1、A2、A3=或者该值未知?为什么不使用字典?编辑之前的代码工作正常,我只是回答了您关于不理解的问题
a b c
a 0.501693 0.506768 0.315132
b 0.382843 0.116506 0.194385
c 0.208627 0.033067 0.121261