码迷,mamicode.com
首页 > 编程语言 > 详细

python学习2016.4.13

时间:2016-05-07 11:04:09      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:

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

python学习2016.4.13

标签:

原文地址:http://blog.csdn.net/use_my_heart/article/details/51332565

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!