加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 从带有补充列的numpy数组初始化DataFrame

发布时间:2020-12-20 11:04:48 所属栏目:Python 来源:网络整理
导读:假设我有以下代码: import pandas as pdimport numpy as npA = ['red','blue']B = range(2)C = np.random.random((4,2,2))import pandas as pddf = pd.DataFrame({'Color':np.repeat(A,2),'Trial':np.tile(B,'V0':C[:,0],'V1':C[:,1],'V2':C[:,1,'V3':C[:,1
假设我有以下代码:

import pandas as pd
import numpy as np
A = ['red','blue']
B = range(2)
C = np.random.random((4,2,2))
import pandas as pd
df = pd.DataFrame({'Color':np.repeat(A,2),'Trial':np.tile(B,'V0':C[:,0],'V1':C[:,1],'V2':C[:,1,'V3':C[:,1]})
df

其中输出以下数据帧

>   Color Trial    V0          V1         V2          V3
> 0 red     0   0.726781    0.549726    0.053999    0.469885
> 1 red     1   0.609131    0.012120    0.587780    0.344290
> 2 blue    0   0.285235    0.491907    0.907871    0.549792
> 3 blue    1   0.646334    0.164288    0.029917    0.181290

如果数组的大小增长,我想避免输入numpy数组的每个条目,所以我想出了更大数组的以下解决方案

A = ['red',2)})
_df = pd.DataFrame(C.reshape(4,4)).add_prefix('V')
df = pd.concat([df,_df],axis=1)
df

哪个输出相同.我的问题是,是否有更好的方法来实现这一点,不涉及为我想要包含的每个数组创建一个数据帧,然后连接它们?

解决方法

Naw,好像你已经覆盖了你的基地….虽然这里有一些清理,使用DataFrame.assign-

pd.DataFrame(C.reshape(4,4)).add_prefix('V')).assign(
    Color=A * len(A),Trial=np.tile(B,len(A))
)

         V0        V1        V2        V3 Color  Trial
0  0.625676  0.201339  0.873423  0.227824   red      0
1  0.202515  0.515637  0.344809  0.958107  blue      1
2  0.040853  0.682505  0.679995  0.104927   red      0
3  0.548399  0.315772  0.081189  0.282158  blue      1

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读