1628人加入学习
(19人评价)
Python数据分析 - Pandas玩转Excel

Python数据分析轻松学

价格 $99美元

# 蔓藤教育,pandas操作excel的行和列等

import pandas as pd

# 创建一个序列,在pandas中,数据帧DataFram和序列Series是最基本的数据结构

# pandas中的序列的第一种方法,由python中的字典改变而来

d = {'x': 100, 'y': 200, 'z': 300}

print(d)

s1 = pd.Series(d)

 

# 创建序列的第二种方法

L1 = [100, 200, 300]

L2 = ['x', 'y', 'z']

s2 = pd.Series(L1, index=L2)

#s2.to_excel('output3.xlsx', header=None)

# 序列在excel中可能是行,也可能是列,根据传递进DataFrame中序列的方法不同,在excel中呈现行或列不同

 

s3 = pd.Series([1, 2, 3], index=[1, 2, 3], name='A')

s4 = pd.Series([10, 20, 30], index=[1, 2, 3], name='B')

s5 = pd.Series([100, 200, 300], index=[1, 2, 3], name='C')

 

# 当以字典形式将序列传递进数据帧时,在excel中以列呈现

 

# 创建ExcelWriter对象实现向excel中不同sheet中追加写入内容,否则会被覆盖

writer = pd.ExcelWriter('output.xlsx')

 

df = pd.DataFrame({s3.name: s3, s4.name: s4, s5.name: s5})

#df.to_excel('output3.xlsx', sheet_name='sheet1')

df.to_excel(writer, sheet_name='字典传入为列')

 

# 当以列表List形式传入时,以行的形式存在

df1 = pd.DataFrame([s3, s4, s5])

#df1.to_excel('output3.xlsx', sheet_name='sheet2')

df1.to_excel(writer, sheet_name='列表传入为行')

 

writer.save()

 

[展开全文]

 Series序列类似于dictionary

生成一个序列

d={'x':100,'y':200,'z':300}#字典/键值对

print(d.keys())#所有键

print(d.values())#所有值

print(d['x'])#具体一个值

s1=pd.Series(d)#字典转为序列

-----------------------------------

第二种创建序列方法

s1=pd.Series([100,200,300],index=['x','y','z'])

s1=pd.Series(data,index,name)#序列既不是行也不是列

s2=pd.Series(data,index,name)#序列只有加入DataFrame才能有行和列的区别,而这种区别是建立在加入时的方法不同上:两种加入法:dictonary 或者list

 

pd.DataFrame({s1.name:s1,s2.name:s2})#以dictonary加入当作列         

pd.DataFrame([s1,s2])   

pd.DataFrame(list)#以list加入当作行

index的作用:

对齐原则

有共同值则对齐,没有共同值的位置给一个NaN空

--------------------------------------

下节学习:使用Series进行快速填充

[展开全文]

Series

在pandas里面,行和列都可以用一种数据结构Series来表示。

1. 如何生成一个序列对象:

import pandas as pd

s1 = pd.Series()

注:该序列对象为空

2. Series里面几个比较重要的属性

  • Series.data   (以后将被禁用)
  • Series.name
  • Series.index

Dictionary 字典

Dictionary是由一系列的keys,values, pairs组成的。

1. 如何生成一个Dictionary

import pandas as pd

d = {'x':100,'y':200,'z':300}

注:

  • 'x', 'y', 'z' 是字典d的keys。 
  • 100, 200, 300 是字典d的values。

2. Dictionary 里的keys, values

  • 可以通过以下方法来检验keys和values:
d={'x':100,'y':200,'z':300}

print(d.keys())
print(d.values())

得到结果;

dict_keys(['x', 'y', 'z'])
dict_values([100, 200, 300])
  • 通过keys来访问对应的values
d={'x':100,'y':200,'z':300}

print(d['x'])

得到结果

100

 

创建Series的两种方法:

1. 通过Dictionary来创建Series

Code:

d={'x':100,'y':200,'z':300}

s1 = pd.Series(d)

注:

加入后对应的转换关系:

Dictionary                  Series

keys         -------->      index

values      --------->     data(not available)

验证一下对应关系如下:

d={'x':100,'y':200,'z':300}
s1 = pd.Series(d)

print(s1.index)
print(s1)

得到结果

Index(['x', 'y', 'z'], dtype='object')
x    100
y    200
z    300

 

2. 通过分别指定data和index来创建Series

s1=pd.Series([100,200,300],index=['x','y','z'])
print(s1.index)
print(s1)

得到结果

Index(['x', 'y', 'z'], dtype='object')
x    100
y    200
z    300

 

通过DataFrame来定义Series的行和列

Series本身不具体行和列的属性,但可以通过DataFrame来指定。Series加入到DataFrame的方式不同,其对应的行列也不同,

----复习一下DataFrame语句------------------

pandas.DataFrame(columnName:columnData)

----复习结束---------------------------------

首先创建三个Series

import pandas as pd

s1 = pd.Series([1,2,3],index=[1,2,3],name='A')
s2 = pd.Series([1,2,3],index=[1,2,3],name='B')
s3 = pd.Series([1,2,3],index=[1,2,3],name='C')

注:这里每一个Series都包含了data,index,name三个完整的属性。

1. 通过字典的方式加入DataFrame

s1 = pd.Series([1,2,3],index=[1,2,3],name='A')
s2 = pd.Series([1,2,3],index=[1,2,3],name='B')
s3 = pd.Series([1,2,3],index=[1,2,3],name='C')

df=pd.DataFrame({s1.name:s1, s2.name:s2, s3.name:s3})

注:转换后的对应关系

Series                Dictionary          DataFrame

S1.name   --->   Dic.Keys---> columnName

S1.data    ---->   Dic.Values--->columeData

打印后的到结果

   A  B  C
1  1  1  1
2  2  2  2
3  3  3  3

2. 通过list的形式加入到DataFrame

s1 = pd.Series([1,2,3],index=[1,2,3],name='A')
s2 = pd.Series([1,2,3],index=[1,2,3],name='B')
s3 = pd.Series([1,2,3],index=[1,2,3],name='C')

df=pd.DataFrame([s1,s2,s3])

注:

这里的series在DataFrame里面是以行的形式存在的,name成立index

打印后得到结果

   1  2  3
A  1  2  3
B  1  2  3
C  1  2  3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[展开全文]

授课教师

Tim老师

课程特色

视频(30)
下载资料(25)

学员动态

Adamzyf 加入学习
Marstapeworm 加入学习
alpha 加入学习
elllen 完成了 Code for 002
elllen 开始学习 Code for 002