目录
引言:
一、 pandas基本介绍
1.1 创建序列方法
1.2 常用方法
二、 pandas选择数据
2.1 根据标签选择 loc
2.2 根据位置选择 iloc
2.3 根据标签和位置结合选择 ix
2.4 布尔选择 boolean indexing
三、 pandas设置值
3.1 常用修改值方法
3.2 添加新列
pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。【来自百度百科】
t1 = pd.Series([1, 2, 3, np.nan, 44, 1])
print (t1)
dates = pd.date_range('20220401', periods=3)
print (dates)
# 创建二维数组
test = pd.DataFrame(np.random.randn(3, 4), index=dates, columns=['A', 'B', 'C', 'D'])
print (test)
在创建二维序列的时候,index参数相当于行的序列号,column相当于列的序列号。输出结果如下:
还可以使用直接放入字典的方式进行创建二维序列:
# 字典方式创建二维序列
test2 = pd.DataFrame({"A": [1, 2, 3],
"B": ['math', 'Chinese', 'English'],
"C": [7, 8, 9],
"D": [3, 4, 7]}, index=dates)
print (test2)
字典的键等价于列的序号,字典的值形成一列。如果不给index设置值则行序号默认0,1,2……
print(……):
test2.dtypes:输出每一列对应的数据类型
test2.index:输出所有行的序号
test2.columns:输出所有列的序号
test2.values:输出所有值(不包含序号)
test2.describe():输出所有数值列的count、mean、std、min……
test2.T:输出原序列的转置
test2.sort_index(axis=0/1,ascending=true/false):按照行/列+升序/降序进行排序
test2.sort_values(by='B'):指定列进行值排序
样例如下:
# 字典方式创建二维序列
test2 = pd.DataFrame({"A": [1, 2, 3],
"B": ['math', 'Chinese', 'English'],
"C": [7, 8, 9],
"D": [3, 4, 7]})
print (test2)
print (test2.dtypes)
print (test2.index)
print (test2.columns)
print (test2.values)
print (test2.describe())
print (test2.T)
print (test2.sort_index(axis=1, ascending=False))
print (test2.sort_values(by='B'))
选择某列:test2['A']、test2.A
选择某行:print (test2[0:2]) 注意输出的是0、1行,左闭右开
和下面的要进行对比。
# 字典方式创建二维序列
test2 = pd.DataFrame({"A": [1, 2, 3],
"B": ['math', 'Chinese', 'English'],
"C": [7, 8, 9],
"D": [3, 4, 7]})
print (test2)
# 根据标签选择数据
print (test2.loc[2]) # 输出第二行
print (test2.loc[:, 'B']) # 输出B列
print (test2.loc[:, ['B', 'C']]) # 输出B,C列
print (test2.loc[1, ['B', 'C']]) # 输出1行 B,C列
print (test2.loc[:1, ['B', 'C']]) # 输出0,1行 B,C列
# 根据位置选择数据
print (test2.iloc[2]) # 输出第2行
print (test2.iloc[:, 1]) # 输出第1列
print (test2.iloc[:, 1:3]) # 输出1,2列
print (test2.iloc[1, 1:3]) # 输出1行 1,2列
print (test2.iloc[:1, 1:3]) # 输出0行 1,2列
# 字典方式创建二维序列
test2 = pd.DataFrame({"A": [1, 2, 3],
"B": ['math', 'Chinese', 'English'],
"C": [7, 8, 9],
"D": [3, 4, 7]}, index=dates)
print (test2)
# 根据标签和位置选择数据
print (test2.ix[2]) # 输出第2行
print (test2.ix[:, 'B']) # 输出第1列
print (test2.ix[:, ['B', 'C']]) # 输出1,2列
print (test2.ix[1, ['B', 'C']]) # 输出1行 1,2列
print (test2.ix[:1, ['B', 'C']]) # 输出0行 1,2列
下面这种方法会影响其他列:
为了避免对其他列的修改,可以采用以下方法:
也可以在添加新列的时候进行其他类型的值,但要注意赋值的个数应和行数保持一致。
接下