10分钟学会Pandas

1、创建对象

import pandas as pd
print(pd.Series([1,2,3,4,5], index=list("abcde")))

a    1
b    2
c    3
d    4
e    5

dates = list('ABCDEF')
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
print(df)

Columns: 列名
index: 行名
          A         B         C         D
A  0.924594 -0.053096 -0.251685  0.986537
B  0.521780  1.161101  0.974749  0.301026
C -1.717383  0.159148 -0.642872  0.804738
D -0.591834 -0.869854  0.513973 -0.411427
E  0.144160 -1.047797 -0.325710  0.086812
F  0.015615  1.244260 -0.297587  2.144072

df = pd.DataFrame({1:[1,2,3],2:2,3:3}, index=["he","ha","hu"])
字典的每一项相当于一列,之后组织起来形成一个表。index是哈希的对象,columns只不过是向上堆叠而已。
    1  2  3
he  1  2  3
ha  2  2  3
hu  3  2  3

head(),tail()接口查看元素
dates = list('ABCDEF')
df = pd.DataFrame({1:[1,2,3],2:2,3:3}, index=["he","ha","hu"])
print(df.head(1))
print("")
print(df.tail(2))
    1  2  3
he  1  2  3

    1  2  3
ha  2  2  3
hu  3  2  3

print(df.index)
print(df.columns)

Index(['he', 'ha', 'hu'], dtype='object')
Int64Index([1, 2, 3], dtype='int64')

#获取统计信息
print(df.describe())

df = pd.DataFrame({1:np.random.random((6)),2:np.random.random((6)),3:np.random.random((6))}, index=list("abcdef"))
print(df)
df = df.sort_index(axis=0, ascending=False)
print(df)
df = df.sort_index(axis=1, ascending=False)
print(df)
df = df.sort_values(by = 2, ascending=False)
print(df)
df = df.sort_values(by = 2)
print(df)

按索引排序·,按行排序,按列排序,按某一列的值排序

希望获取元素:
如果是希望获取列: 则通过df["A"]即可,如果希望获取某个位于某行某列的元素,用df.loc[index, columns]即可,
注意,index,columns可以是数组

df = pd.DataFrame({"数学":np.random.normal(120, 10, (100)),"英语":np.random.normal(130, 5, (100)),
                   "计算机":np.random.normal(85, 5, (100))},
                  index=list(range(100)))

print(df.index)
print(df.loc[[99, 88],["数学","英语"]])
print(df.iloc[[99, 88],[1,2]])
注意iloc和loc的区别,iloc是只能接受数字索引,loc只接受实际的文字索引。loc更加方便一些。

类似于numpy,但是只支持对列做这种操作
df[df["数学"]>130]

列可以直接做修改
df['数学'] = [i for i in range(0, 200, 2)]
print(df)

df['数学'].isin([12, 13, 14])

利用is_in,传入一个值的列表,可以支持比较复杂的bool表达式

df['sum'] = [sum(df.loc[i, :]) for i in range(100)]
print(df)
添加属性列

空值相关:
过滤和填充 dropna和fillna函数:
df = pd.DataFrame({"数学":np.random.normal(120, 10, (100)),"英语":np.random.normal(130, 5, (100)),
                   "计算机":np.random.normal(85, 5, (100)), "sum":np.nan},
                  index=list(range(100)))

df.loc[[1,2,3],["sum"]] = [[5],[2],[5]]
print(df.dropna())
print(df.fillna(4))

在某条轴线上应用函数
print(df.apply(lambda x: x["数学"], axis=1))
print(df.apply(np.cumsum, axis=0))
axis = 1表水平方向, axis = 0表示竖直方向

增加属性列很简单,怎么增加行呢?
可以用
pd.concat()
传入一个数组,并选 ignore_index=True, 这样可以实现拼接

两张表根据主键做自然连接
pd.merge(left,right, on='key')

追加行,性质类似于把一张表合并到另一张表里面去
df.append(df2, ignore_index=True)
和pd.concat()效果很类似,不同之处在pd.concat()支持拼接多个表,而df.append()只支持拼接两个表
df,groupby([]) 按照属性分组,之后可以调用函数统计每个组的一些数据
、、、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习是一门利用计算机算法来使计算机从大量数据中学习和提取模式的技术。在机器学习中,numpy、pandas和sklearn是三个非常重要且常用的库。 首先,numpy是一个Python数值计算库,提供了高性能的多维数组对象,以及处理这些数组的工具。机器学习算法通常需要对大量的数据进行处理和计算,numpy提供了快速有效的数组操作和计算方法,使得机器学习的数据处理更加高效。 其次,pandas是一个数据分析工具,提供了高性能的数据结构和数据分析工具。在机器学习中,我们通常需要对数据进行清洗、处理和预处理,pandas提供了强大的数据处理功能,可以方便地进行数据清洗、筛选和转换等操作。同时,pandas还提供了灵活的数据结构,如Series和DataFrame,使得数据的管理和分析更加方便。 最后,sklearn是一个用于机器学习的Python库,提供了丰富的机器学习算法和工具。sklearn包含了常用的分类、回归、聚类等机器学习算法,同时还提供了特征选择、数据预处理、模型评估等功能。sklearn与numpy和pandas结合使用,可以更加方便地进行机器学习任务的实现和评估。 总之,学习掌握numpy、pandas和sklearn这三个库是机器学习的基础。它们提供了强大的数值计算、数据处理和机器学习算法的功能,可以帮助我们更加高效地进行数据分析和机器学习模型的构建。了解和使用这些库,将极大地提升机器学习的效率和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值