pandas数据操作

简介: pandas数据操作字符串方法Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素import numpy as npimport pandas as pdt = pd.

pandas数据操作

字符串方法

Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素

import numpy as np
import pandas as pd

t = pd.Series(['a_b_c_d','c_d_e',np.nan,'f_g_h'])
t
0    a_b_c_d
1      c_d_e
2        NaN
3      f_g_h
dtype: object
t.str.cat(['A','B','C','D'],sep=',') # 拼接字符串
0    a_b_c_d,A
1      c_d_e,B
2          NaN
3      f_g_h,D
dtype: object
t.str.split('_') # 切分字符串
0    [a, b, c, d]
1       [c, d, e]
2             NaN
3       [f, g, h]
dtype: object
t.str.get(0) # 获取指定位置的字符串
0      a
1      c
2    NaN
3      f
dtype: object
t.str.replace("_", ".") # 替换字符串
0    a.b.c.d
1      c.d.e
2        NaN
3      f.g.h
dtype: object
t.str.pad(10, fillchar="?") # 左补齐
0    ???a_b_c_d
1    ?????c_d_e
2           NaN
3    ?????f_g_h
dtype: object
t.str.pad(10, side="right", fillchar="?") # 右补齐
0    a_b_c_d???
1    c_d_e?????
2           NaN
3    f_g_h?????
dtype: object
t.str.center(10, fillchar="?") #中间补齐
0    ?a_b_c_d??
1    ??c_d_e???
2           NaN
3    ??f_g_h???
dtype: object
t.str.find('d') # 查找给定字符串的位置,左边开始
0    6.0
1    2.0
2    NaN
3   -1.0
dtype: float64
t.str.rfind('d') # 查找给定字符串的位置,右边开始
0    6.0
1    2.0
2    NaN
3   -1.0
dtype: float64

数据转置(行列转换)

dates = pd.date_range('20130101',periods=10)
dates
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06', '2013-01-07', '2013-01-08',
               '2013-01-09', '2013-01-10'],
              dtype='datetime64[ns]', freq='D')
df = pd.DataFrame(np.random.randn(10,4),index=dates,columns=['A','B','C','D'])
df.head()
A B C D
2013-01-01 -0.665173 0.516813 0.745156 -0.303295
2013-01-02 -0.953574 2.125147 0.238382 -0.400209
2013-01-03 -0.233966 2.066662 0.331000 -2.802471
2013-01-04 2.038273 0.982127 -1.096000 -1.051818
2013-01-05 -1.438657 -1.208042 -0.375673 0.384522
df.head().T # 行列转换
2013-01-01 00:00:00 2013-01-02 00:00:00 2013-01-03 00:00:00 2013-01-04 00:00:00 2013-01-05 00:00:00
A -0.665173 -0.953574 -0.233966 2.038273 -1.438657
B 0.516813 2.125147 2.066662 0.982127 -1.208042
C 0.745156 0.238382 0.331000 -1.096000 -0.375673
D -0.303295 -0.400209 -2.802471 -1.051818 0.384522

对数据应用function

df.head().apply(np.cumsum) # cumsum 累加
A B C D
2013-01-01 -0.665173 0.516813 0.745156 -0.303295
2013-01-02 -1.618747 2.641960 0.983537 -0.703504
2013-01-03 -1.852713 4.708622 1.314537 -3.505975
2013-01-04 0.185560 5.690749 0.218537 -4.557793
2013-01-05 -1.253098 4.482707 -0.157135 -4.173271

频率

计算值出现的次数,类似直方图

s = pd.Series(np.random.randint(0, 7, size=10))
s
0    3
1    3
2    1
3    6
4    3
5    3
6    5
7    2
8    1
9    0
dtype: int32
s.value_counts()
3    4
1    2
6    1
5    1
2    1
0    1
dtype: int64
目录
相关文章
|
1月前
|
Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数变换数据。示例代码:导入pandas,定义一个包含'Name'和'Age'列的DataFrame,使用`melt()`转为长格式,再用`pivot()`恢复为宽格式。
49 1
|
1月前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
35 2
|
1月前
|
存储 Python
使用Pandas库对非数值型数据进行排序和排名
在Pandas中,支持对非数值型数据排序和排名。可按以下方法操作:1) 字符串排序,使用`sort_values()`,如`sorted_df = df.sort_values(by='Name', ascending=False)`进行降序排序;2) 日期排序,先用`to_datetime()`转换,再排序,如`sorted_df = df.sort_values(by='Date')`;3) 自定义排序,结合`argsort()`和自定义规则。
39 2
|
1月前
|
索引 Python
如何使用Python的Pandas库进行数据合并和拼接?
Pandas的`merge()`函数用于数据合并,如示例所示,根据'key'列对两个DataFrame执行内连接。`concat()`函数用于数据拼接,沿轴0(行)拼接两个DataFrame,并忽略原索引。
51 2
|
1月前
|
数据挖掘 索引 Python
如何在Python中,Pandas库实现对数据的时间序列分析?
【4月更文挑战第21天】Pandas在Python中提供了丰富的时间序列分析功能,如创建时间序列`pd.date_range()`,转换为DataFrame,设置时间索引`set_index()`,重采样`resample()`(示例:按月`'M'`和季度`'Q'`),移动窗口计算`rolling()`(如3个月移动平均)以及季节性调整`seasonal_decompose()`。这些工具适用于各种时间序列数据分析任务。
26 2
|
1月前
|
存储 JSON 数据处理
从JSON数据到Pandas DataFrame:如何解析出所需字段
从JSON数据到Pandas DataFrame:如何解析出所需字段
49 1
|
18天前
|
存储 数据采集 JSON
Pandas数据读取三连“坑”
大家小时候有没有用玩儿过一种飞行棋,两个人玩儿,摇骰子摇到几然后就相应的往前走几步,看谁先到终点谁就胜利了。在玩儿的途中,地图上有很多奖励或者陷阱,有的时候运气不好,连中好几个陷阱不但没有前进反而还后退了。 这不最近再看Pandas数据读取的知识时候,我就踩了好几个小坑,幸亏把学习文档上的提供的demo进行了验证,不然在以后项目应用的时候再遇到了岂不是挺尴尬了。
|
1月前
|
数据采集 监控 数据可视化
Pandas平滑法时序数据
【5月更文挑战第17天】本文介绍了使用Python的Pandas库实现指数平滑法进行时间序列预测分析。指数平滑法是一种加权移动平均预测方法,通过历史数据的加权平均值预测未来趋势。文章首先阐述了指数平滑法的基本原理,包括简单指数平滑的计算公式。接着,展示了如何用Pandas读取时间序列数据并实现指数平滑,提供了示例代码。此外,文中还讨论了指数平滑法在实际项目中的应用,如销售预测和库存管理,并提到了在`statsmodels`库中使用`SimpleExpSmoothing`函数进行模型拟合和预测。最后,文章强调了模型调优、异常值处理、季节性调整以及部署和监控的重要性,旨在帮助读者理解和应用这一方法
29 2
 Pandas平滑法时序数据
|
1月前
|
数据挖掘 数据处理 索引
使用Pandas从Excel文件中提取满足条件的数据并生成新的文件
使用Pandas从Excel文件中提取满足条件的数据并生成新的文件
28 1
|
1月前
|
数据采集 数据处理 索引
如何使用 Pandas 删除 DataFrame 中的非数字类型数据?
如何使用 Pandas 删除 DataFrame 中的非数字类型数据?
35 3