python学习记录-Dataframe

本文介绍使用Python的Pandas库进行数据处理的基础操作,包括DataFrame的创建、数据的筛选与选择等。通过实例演示了如何创建DataFrame,展示其结构、描述统计信息、值的查看以及按列、按行和按条件筛选数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#-*-coding:utf-8-*-
import pandas
from numpy.random.mtrand import np

#创建一个dataframe
dates=pandas.date_range('20170101',periods=7)
ss=pandas.DataFrame(np.random.randn(7,3),index=dates,columns=['a','b','c'])#生成一个7*3的矩阵
print 'dataframe ss显示为\n%s'%ss

#数据显示
print 'dataframe结构'
print ss.index#显示行索引
print ss.columns#列索引
print ss.shape#显示数据的维度
print ss.size#显示元素的个数
print ss.describe#显示数据的基本描述
print ss.values#显示所有的值

print 'dataframe数据列筛选'
print ss.a#显示数据的某一列的值,方法1
print ss['a']#显示数据的某一列的值,方法2


print 'dataframe数据行筛选-切片'
print ss.head(1)#显示第一行数据,方法1
print ss[:1]#显示第一行数据,方法2
print ss.tail(2)#显示最后两行数据,方法1
print ss[-2:]#显示最后两行数据,方法2

print 'dataframe数据选择-条件筛选'
print ss['2017-01-01':'2017-01-02']#根据日期筛选
print ss[(ss.a<1)&(ss.b>1)]#根据数值筛选

运行结果:

 

dataframe ss显示为
                   a         b         c
2017-01-01 -0.713403 -0.199190 -0.808631
2017-01-02 -2.260560  1.959113  1.113825
2017-01-03 -0.490959 -0.687768  2.312052
2017-01-04 -1.537248  0.810706  1.476309
2017-01-05 -1.359221  0.872240  2.292086
2017-01-06  1.024769 -0.428577 -0.558432
2017-01-07 -0.097108 -0.593286 -0.405638
dataframe结构
DatetimeIndex(['2017-01-01', '2017-01-02', '2017-01-03', '2017-01-04',
               '2017-01-05', '2017-01-06', '2017-01-07'],
              dtype='datetime64[ns]', freq='D')
Index([u'a', u'b', u'c'], dtype='object')
(7, 3)
21
<bound method DataFrame.describe of                    a         b         c
2017-01-01 -0.713403 -0.199190 -0.808631
2017-01-02 -2.260560  1.959113  1.113825
2017-01-03 -0.490959 -0.687768  2.312052
2017-01-04 -1.537248  0.810706  1.476309
2017-01-05 -1.359221  0.872240  2.292086
2017-01-06  1.024769 -0.428577 -0.558432
2017-01-07 -0.097108 -0.593286 -0.405638>
[[-0.71340275 -0.19919033 -0.8086307 ]
 [-2.26056037  1.95911348  1.1138253 ]
 [-0.49095857 -0.68776847  2.31205246]
 [-1.53724807  0.81070592  1.4763093 ]
 [-1.35922072  0.87224042  2.29208569]
 [ 1.02476913 -0.42857728 -0.55843242]
 [-0.09710843 -0.59328586 -0.4056384 ]]
dataframe数据列筛选
2017-01-01   -0.713403
2017-01-02   -2.260560
2017-01-03   -0.490959
2017-01-04   -1.537248
2017-01-05   -1.359221
2017-01-06    1.024769
2017-01-07   -0.097108
Freq: D, Name: a, dtype: float64
2017-01-01   -0.713403
2017-01-02   -2.260560
2017-01-03   -0.490959
2017-01-04   -1.537248
2017-01-05   -1.359221
2017-01-06    1.024769
2017-01-07   -0.097108
Freq: D, Name: a, dtype: float64
dataframe数据行筛选-切片
                   a        b         c
2017-01-01 -0.713403 -0.19919 -0.808631
                   a        b         c
2017-01-01 -0.713403 -0.19919 -0.808631
                   a         b         c
2017-01-06  1.024769 -0.428577 -0.558432
2017-01-07 -0.097108 -0.593286 -0.405638
                   a         b         c
2017-01-06  1.024769 -0.428577 -0.558432
2017-01-07 -0.097108 -0.593286 -0.405638
dataframe数据选择-条件筛选
                   a         b         c
2017-01-01 -0.713403 -0.199190 -0.808631
2017-01-02 -2.260560  1.959113  1.113825
                  a         b         c
2017-01-02 -2.26056  1.959113  1.113825

 

 

 

 

### 学习Python pandas DataFrame 数据处理 使用教程 #### 创建DataFrame实例 为了更好地理解`pandas.DataFrame`的数据处理方法,先创建一个简单的DataFrame作为例子。 ```python from pandas import DataFrame import pandas as pd import numpy as np df = DataFrame(np.random.randn(4, 5), columns=['A', 'B', 'C', 'D', 'E']) print(df) ``` 这段代码展示了如何通过随机数生成器构建一个包含五列('A','B','C','D','E')以及四行记录的表格结构化对象——即DataFrame[^1]。 #### 修改与更新数据 对于已有的DataFrame,可以方便地对其进行各种形式的操作来满足特定需求。比如更改某一整列的数据类型: ```python df['A'] = df['A'].astype('int') ``` 上述命令会把'A'这一列中的数值转换成整型表示;这有助于当原始数据集存在不一致的情况时统一其格式以便后续更高效的计算或展示[^3]。 #### 行列求和及新增行列 针对现有数据表内元素执行算术运算也是常见的任务之一。例如,在原有基础上增加一行代表各字段总和的新条目: ```python sum_row = df.sum() df.loc['Total'] = sum_row.values ``` 这里利用`.loc[]`属性指定位置索引的方式向最后一行插入了一组由其他所有非汇总行对应位相加所得的结果集合。 #### 合并多个DataFrame 实际应用中经常遇到需要将不同来源但具有一定关联性的多份资料整合到一起的情形。Pandas提供了多种灵活有效的手段实现这一点,如按照行方向连接两个相似布局的对象或是基于某些共同键值横向拼接它们等。 ```python # 假设有另一个相同结构但是内容不同的dataframe叫做df2 frames = [df, df2] result = pd.concat(frames) # 或者按照某几列做key来进行merge操作 merged_df = pd.merge(df, df2, on='common_column_name') ``` 以上两种方式分别适用于简单堆叠和平面扩展的需求场景下完成两套或多套独立存储单元之间的融合工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值