python学习2016.4.13

Python函数

 

(1)数据框的另一种定义方式,将数据内容(多维数组)直接放入data中,再定义columns和index。(数据框.columns是取列名,.index是取行名,取出的类型类似元组,可以用[0],[1]…直接取出)

df = pd.DataFrame(data=[[34, ‘null‘, ‘mark‘], [22, ‘null‘,‘mark‘], [34, ‘null‘, ‘mark‘]], columns=[‘id‘, ‘temp‘, ‘name‘], index=[1, 2,3])

print(df)

结果:

id   temp   name

1  34    null    mark

2  22    null    mark

3  34    null    mark

(2)对数据框的每一列进行操作

for c in df.columns:

print(‘--%s--‘ %c)

print(df[c].value_counts())

结果:

--id--

34    2

22    1

dtype: int64

--temp--

null    3

dtype: int64

--name--

mark    3

dtype: int64

不用循环的简易写法,应用apply和lambda函数

df1 = df.apply(lambdax: x.value_counts().T.stack())

print(df1)

注:对数据框整个进行apply是对每一列进行操作,T是转置,stack是去掉nan的项。如果不是统计每个取值的个数,就是对每列中每个值进行操作。

结果:

id    22      1

34      2

temp  null    3

name  mark    3

dtype: float64

也可以取出单列,对单列中的每个值进行操作。

df2 =df[‘id‘].apply(lambda x: x+1)

print(df2)

结果:

1    35

2    23

3    35

Name: id, dtype: int64

(3)字符与字符串的转换

整数字符串转换为对应的整数:int(‘12‘)

小数字符串转换为对应小数:float(‘12.34‘)

数字转换为字符串:str(123.45)

ASCII码转换为相应字符:chr(97)

字符转换为相应ASCII码:ord(‘a‘)

注:ASCII码对应的是整型的。

(4)dataframe类型转换

df.astype(int)

(5)从dataframe中取出列有两种方式

df.id,

df[‘id’]

1   34

2   22

3   34

Name: id, dtype: int64

1   34

2   22

3   34

Name: id, dtype: int64

(6)is判断是否是同一对象,ain b是判断a是否是b中的元素 (不用调用包,直接可以用)

a = [1, 2, 3]

b = [1, 2, 3]

c = a

print(a is b)     注:is判断内存地址,不是判断是否相等

print(a is c)

print(1 in a)

结果:

False

True

True

Isin判断数据框中的元素是否在列表中,一个一个判断,只要有,就是True,否则False。

df:

id temp  name

1  34 null  mark

2  22 null  mark

3  34 null  mark

print(df.id.isin([3,34]))

结果:

1    True

2   False

3    True

Name: id, dtype: bool

(7)用列名从数据框取出多列,一定要用列表组合成一个整体,否则会报错。

d =df[[‘id‘, ‘temp‘]]

print(d)

结果:

id  temp

1 34  null

2 22  null

3 34  null

(8)DataFrame.reset_index(level=Nonedrop=Falseinplace=Falsecol_level=0col_fill=‘‘)

返回的还是一个数据框


Parameters:


level : int, str, tuple, or list, default None

Only remove the given levels from the index. Removes all levels by default

drop : boolean, default False

Do not try to insert index into dataframe columns. This resets the index to the default integer index.

inplace : boolean, default False

Modify the DataFrame in place (do not create a new object)

col_level : int or str, default 0

If the columns have multiple levels, determines which level the labels are inserted into. By default it is inserted into the first level.

col_fill : object, default ‘’

If the columns have multiple levels, determines how the other levels are named. If None then the index name is repeated.


Returns:


resetted : DataFrame

print(df.reset_index())   注:将index作为一列加入到了数据框中

结果:

index  id  temp name

0     1  34  null mark

1     2  22  null mark

2     3  34  null mark

print(df.reset_index(level=0))   注:还是将Index作为一列加入到了数据框中??level好像没有用

结果:

index  id  temp name

0     1  34  null mark

1     2  22  null mark

2     3  34  null mark

print(df.reset_index(level=0,drop=True))  
注:drop=true没有加入Index列

结果:

id  temp  name

0 34  null  mark

1 22  null  mark

2 34  null  mark

(9)数据框中的函数有的可以对整个数据框,有的只是对其中的列

df1= pd.DataFrame(data=[[2.987, 4, 6, 6], [5, 5, 7, 8], [7, 8, 3, 23], [6, 3, 66,44], [32, 5, 6, 2]], columns=[‘x1‘, ‘x2‘, ‘x3‘, ‘y‘])

结果:

x1  x2  x3   y

0  2.987   4   6   6

1  5.000   5   7   8

2  7.000   8   3  23

3  6.000   3  66  44

4 32.000   5   6   2

print(df1.x1.round(2))

结果:

0    2.99

1    5.00

2    7.00

3    6.00

4   32.00

注:df1.round(2)会报错

print(df1.sum())   注:sum后面一定要带括号(),否则虽然不会报错,但返回结果不是各列求和。

结果:

x1   52.987

x2   25.000

x3   88.000

y    83.000

(10)time.sleep(t),推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间,没有返回值。t代表推迟执行的秒数。

print(‘start:%s‘ %datetime.now().strftime(‘%Y-%m-%d %H:%M:%S‘))

print(‘start:%s‘ % time.ctime())

time.sleep(5)

print(‘end:%s‘%datetime.now().strftime(‘%Y-%m-%d %H:%M:%S‘))

print(‘end:%s‘ % time.ctime())

结果:

start: 2016-04-13 17:46:47

start: Wed Apr 13 17:46:47 2016

end: 2016-04-13 17:46:52

end: Wed Apr 13 17:46:52 2016

文件更改扩展名的方法:

1、打开我的电脑,如图所示,会看到菜单栏。若没有,则按一下ALT键就会出现。依次选择工具→文件夹选项,打开文件夹选项对话框。

2、点击查看选项卡,向下滑动滚动条到底部。

3、找到隐藏已知文件类型的扩展名选项,取消选中状态。点击确定即可,此时我们就可以更改文件的扩展名。

时间: 2024-10-10 06:05:51

python学习2016.4.13的相关文章

Python学习之路13?常用模块

一 time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time())",返回的是float类型. 格式化的时间字符串(Format String) 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时) 1 import time 2 #

python学习笔记(13)--向文件夹插入课文朗读

说明: 1. 2016年初刚学python写的一段代码,找到了一个walk函数,研究了半天.文件复制粘贴,研究了半天.正则匹配,研究了半天,期间被斜杠差点搞死.后来做完了跟CZ炫耀,他说python里的walk函数特别好用,c#里面要搞半天. 2. 其实现在用这几个函数还是要百度,不过不用研究半天了.放在这里留个纪念吧! 1 import os 2 import re 3 import shutil 4 path1 = r"D:\XiZhi\XZJYResFolder_new\Grade_7_T

python学习tkinter(1-3)

(一) 之前使用easy_gui写过一下界面,感觉就是太过于简单了,因此这次是学习tkinter来做的. import tkinter as tk #顶层窗口,根窗口 app = tk.Tk() app.title("flash demo") theLabel = tk.Label(app,text="我的第二个窗口程序!")#建立一个组件,用于显示文本和图片 theLabel.pack()#用于自动调节组件尺寸和位置 app.mainloop()#窗口的主事件循环

Python学习进程(13)文件与IO

    本节介绍基本的IO函数和文件的读写操作.     (1)读取键盘输入: Python用于读取键盘输入的函数有两个:raw_input与input. 1)raw_input函数 从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符) >>> str=raw_input("请输入一个字符串") 请输入一个字符串 >>> str=raw_input("请输入一个字符串:\n") 请输入一个字符串: my name is Me

Python学习之路13——字符串2

1只适用与字符串的操作符 1.1格式化操作符(%) Python风格的字符串格式操作符.只适用与字符串类型,非常类似于C语言中的printf()函数的字符串格式化,都是用%,并且支持所有的printf()的格式化操作. 字符串格式化符合如下: %c                     转换成字符(ASCII码值,或者长度为一的字符串)  %r                     优先用repr()函数进行字符串转换  %s                     优先用str()函数进行

Python学习2016.4.12

Python函数 (1)isinstance,来判断一个对象是否是一个已知的类型. isinstance说明如下: isinstance(object, class-or-type-or-tuple)-> bool isinstance(x, (A, B, ...)) 其第一个参数为对象,第二个为类型名或类型名的一个列表.其返回值为布尔型. 若对象的类型与参数二的类型相同则返回True.若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True. 示例: >>>lst =

python学习2016.4.1

(1)pandas.Series.value_counts:返回对象中包含唯一值个数, Series.value_counts(normalize=False, sort=True, ascending=False, bins=None,dropna=True) 参数: normalize : boolean, default False 如果True则返回counts的相对频率 sort : boolean, default True 对值进行排序 ascending : boolean, d

python学习——练习题(13)

""" 题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个"水仙花数", 因为153=1的三次方+5的三次方+3的三次方. 程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位. """ def answer1(): """ 正常for循环比较 :return: "

python 学习笔记 13 -- 常用的时间模块之time

Python 没有包含对应日期和时间的内置类型,不过提供了3个相应的模块,可以采用多种表示管理日期和时间值: *    time 模块由底层C库提供与时间相关的函数.它包含一些函数用于获取时钟时间和处理器的运行时间,还提供了基本解析和字符串格式化工具 *    datetime 模块为日期.时间以及日期时间值提供一个更高层接口.datetime 中的类支持算术.比较和时区配置. *    calendar 模块可以创建周.月和年的格式化表示.它还可以用来计算重复事件.给定日期是星期几,以及其他基