python数据分析(11)——pandas数据结构DataFrame

panads数据结构——DataFrame基本概念及创建:

二维数组DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。
DataFrame既有行标签index,也有列标签columns,可以看作是由series组成的字典(共用同一个索引)。

DataFrame的创建方法一:传入一个由等长列表或numpy数组组成的字典:

data={'name':['a','b','c'],
      'age':[10,12,13],
      'gender':['m','m','w']}
df1=pd.DataFrame(data)
print(df1)
   age gender name
0   10      m    a
1   12      m    b
2   13      w    c

结果DataFrame会自动加上索引,就像series一样,按照指定顺序排列,字典的key会默认作为columns,字典的值的长度必须保持一致。

创建方法二:由series组成的字典。

data2={'name':pd.Series(np.random.rand(4)),
      'age':pd.Series(np.random.rand(3)),
      'gender':pd.Series(np.random.rand(3))}
df2=pd.DataFrame(data2)
print(df2)
        age    gender      name
0  0.019547  0.691030  0.127972
1  0.690846  0.530450  0.409225
2  0.115162  0.944231  0.734464
3       NaN       NaN  0.410279

series自带index作为index,字典的key作为columns,series的长度可以不一致,缺失值会填充为NaN。

创建方法三;通过二维数组直接创建。

ar=np.random.rand(9).reshape(3,3)
df3=pd.DataFrame(ar,index=['a','b','c'],columns=[1,2,3])
print(df3)
          1         2         3
a  0.856429  0.225810  0.061368
b  0.192359  0.346842  0.970712
c  0.164591  0.161680  0.547799

直接创建一个二维数组,指定索引和列名,注意索引和列名长度必须与数组格式保持一致。

创建方法四:由字典组成的列表。

data=[{"a":1,"b":2,"c":3},{"d":4,"e":5}]
df1=pd.DataFrame(data)
print(df1)
     a    b    c    d    e
0  1.0  2.0  3.0  NaN  NaN
1  NaN  NaN  NaN  4.0  5.0

字典的key的并集作为columns,index不作指定为默认数组标签。

创建方法五:由字典组成的字典,即嵌套字典。

data={'jack':{'math':80,'English':90,'art':78},
      'marry':{'math':88,'English':90,'art':68},
      'tom':{'math':80,'English':90}}
df1=pd.DataFrame(data)
print(df1)
         jack  marry   tom
English    90     90  90.0
art        78     68   NaN
math       80     88  80.0

外层字典的key作为columns,内层字典的key作为nidex。
注意:这里的index如果重新指定index,并不是改变原来index,而是返回空值!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值