pandas 学习(一) —— read_csv 的参数与 DataFrame
2016-01-15 08:35
267 查看
对 DataFrame 对象迭代得到的是其各个属性列的列名,自然为 list 类型;
read_csv,read_excel
header:表头,默认不为空(为 0,也即将第一行视为表头)。如果我们要读取的文件,直接就是数据,没有所谓的表头。就需指定 header=None,否则将以文件的第一行作为 df.columns。指定 header=None,df.columns 返回的是列索引,如一个三列的数据:
parse_datas:指明日期列,为字符串构成的 list;
thousands : str, default None,千分位分割符,如“,”或者“.”
Series 最重要的一个功能在于:它在算术运算中会自动对齐不同索引的数据;
df.columns,获取列名,可直接通过
比如一个 df.columns 的返回值为:
可直接索引的含义在于,使用
支持
df.assign():指定新的列(如果列名已存在,则替换;如果不存在,在添加该列),返回一个新的 DataFrame,不对原始的 DataFrame 进行修改;
当然其也可以接收一个 lambda 型的函数对象,该函数对象接收的参数则是原始的 dataframe;
pandas.DataFrame.assign
set_index():将某列设置为索引列;
1. 从文件读取数据返回 data frame
pandas.read_csv参数详解read_csv,read_excel
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/' 'breast-cancer-wisconsin/wdbc.data', header=None) # df: data frame # type(df): <class 'pandas.core.frame.DataFrame'>
header:表头,默认不为空(为 0,也即将第一行视为表头)。如果我们要读取的文件,直接就是数据,没有所谓的表头。就需指定 header=None,否则将以文件的第一行作为 df.columns。指定 header=None,df.columns 返回的是列索引,如一个三列的数据:
Int64Index([0, 1, 2], dtype='int64')
parse_datas:指明日期列,为字符串构成的 list;
thousands : str, default None,千分位分割符,如“,”或者“.”
2. pandas 基本数据结构:Series 与 DataFrame
from pandas import Series, DataFrameSeries 最重要的一个功能在于:它在算术运算中会自动对齐不同索引的数据;
X, y = df.values[:, 2:], df.values[:, 1] # df.values 的类型为 numpy.ndarray # 也可以 X, y = df.loc[:, 2:].values, df.loc[:, 1].values
3. dataframe 与 numpy 下的多维数组的转换
dataframe ⇒ numpy.ndarray:df.ax_matrix()
4. 基本成员函数
df.dtypes:会按列给出各个列的数据类型;df.columns,获取列名,可直接通过
.的形式进行索引;
比如一个 df.columns 的返回值为:
Index([u'dt', u'kind', u'value'], dtype='object')
可直接索引的含义在于,使用
df.dt或者
df.kind或者
df.value进行索引,获取某列的全部值( 注,pandas 的特点,以列进行索引和修改)。同时索引多个列以构成一个新的表格,
df[['dt', 'value']] # 这样得到的仍然是 dataframe
支持
[]的索引方式,但关键字必须是 list 的形式(
['dt', 'value']),而不可以是 tuple
df.assign():指定新的列(如果列名已存在,则替换;如果不存在,在添加该列),返回一个新的 DataFrame,不对原始的 DataFrame 进行修改;
当然其也可以接收一个 lambda 型的函数对象,该函数对象接收的参数则是原始的 dataframe;
# 接收 lambda 型函数对象, >> df = DataFrame({'A':range(1, 6), 'B':np.random.randn(5)}) >> df.assign(ln_A=lambda x: np.log(x.A)) A B ln_A 0 1 0.456539 0.000000 1 2 1.022736 0.693147 2 3 -0.158207 1.098612 3 4 0.951304 1.386294 4 5 -1.024661 1.609438 # 此时 df 本身并未发生任何改变; >> df.assign(A = range(21, 26)) A B 0 21 0.456539 1 22 1.022736 2 23 -0.158207 3 24 0.951304 4 25 -1.024661
pandas.DataFrame.assign
set_index():将某列设置为索引列;
相关文章推荐
- 【Android 应用开发】 FastJson 使用具体解释
- 一些gcd计数问题
- 傅立叶变换的物理意义
- 一起talk C栗子吧(第十二回:C语言实例--单链表一)
- python 从数据库表生成model
- 第一次编译Android源码,悲喜交织的旅途开始了
- 2016践行学习路线
- 生成验证码
- 提取文件到指定目录,并重命名(加了界面)
- 图像处理常用边缘检测算子总结
- IBM的“认知计算时代”
- 实现Fragment中组件到Activity中的跳转
- 一个贯穿图像处理与数据挖掘的永恒问题
- 漫谈并发编程(六):java中一些经常使用的并发构件的介绍
- 让 IE 浏览器成为历史,这是微软给的最好礼物
- Yaf framework 相关
- ES6学习——集合(Collections):Set 应用示例
- 数字处理类 知识点
- Win10打不开应用提示错误0xc0000018的图文解决方法
- 1.14验证码 彩票