pandas复习(2)

这篇博客回顾了Pandas库在数据处理中的关键操作,包括读取pickle文件、时间序列处理、字符串操作、数据转换及列处理。例如,使用`pd.to_datetime`将时间列转换为日期格式,通过`pd.concat`拆分并合并列,以及使用`apply`函数应用自定义处理。此外,还介绍了批量修改列名、调整列顺序和处理字符串前缀的方法,这些技巧对于日常数据分析工作非常实用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


( 记录一下平时遇到的一些数据处理的问题复习自用orz)

1.读取数据

pickle文件,可以将python中的数据类型进行序列化
compression参数指定了压缩类型,‘zip’, ‘gzip’, ‘bz2’, ‘zstd’

pandas.read_pickle(filepath_or_buffer, compression='infer', storage_options=None)

2.处理数据

(1)取特定的行列

利用标签取列:

data['xxx']
data.at #访问单个值
data.loc['行名','列名'] #访问值组
data.loc[['A行','B行']] # 取多行

(2)对需要的行列进行处理

时间处理

#转换回日期格式,默认是毫秒
data['time'] = pd.to_datetime(data['time'],unit='s')
#生成一个时间戳
now = pd.Timestamp.now()

某一列数据进行处理

data['xxx'] = ['这里用一个列表表达式']
data['xxx'] = data['xxx'].apply(lamdba x: function(x))

对于字符串的处理

#去掉首位的a
data['a'] = data['a'].str.strip('a')
# 替换
data['a'] = data['a'].str.replace('a''b')

将特定的列拆分后合并

data = pd.concat([data, data['tempvaluearray'].str.split(',', expand=True)], axis=1).drop('tempvaluearray', axis=1)
pd.concat()#可以按照指定的轴将dataframe或者series拼接,而merge只能拼接两个表
axis #0:上下拼接 1:左右拼接
#drop()的参数axis在删除特定的一行为1

批量修改列名称

data.rename(columns=dic)#可以写一个字典进行替换

计算时保留小数

'%.3f'%0.0065 #保留3位小数
lambda x:'%.3f'%((int(x)-1000)/1000))

调整列顺序

#先取出来再插入
A = data['A']
data.drop(labels=['A'],axis = 1,inplace=True)
data.insert(0, 'A', A)

一个字符串划分的函数

# 对于数据为[12,23,45,12]类似的数据,其中不能是字符串
def split_col(data, columns):
    """拆分成列
    :param data: 原始数据
    :param columns: 拆分的列名
    :type data: pandas.core.frame.DataFrame
    :type columns: list
    """
    for c in columns:
        new_col = data.pop(c)
        max_len = max(list(map(len, new_col.values)))  # 最大长度
        new_col = new_col.apply(lambda x: x + [None]*(max_len - len(x)))  # 补空值,None可换成np.nan
        new_col = np.array(new_col.tolist()).T  # 转置
        for i, j in enumerate(new_col):
            data[c + str(i)] = j

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值