逐行修改dataframe某列的每个元素 遍历dataframe的每个元素

遍历dataframe的方式有两种,一种是使用df_main.loc另一种是使用df_main.iterrows()。我的目的是将df中某列的元素全部修改或按判断条件决定是否修改。比如说将某列的每个元素都只取前四位,使用loc函数遍历智能是将列或行按要求遍历提取出来,一次性会将所有元素遍历结束,无法做到逐一修改,因此本例使用的是iterrows,可以逐行遍历也可以逐列遍历使用iteriterms,自行搜索,用法很多。非常简单,此贴仅做代码保存记录。

将time列的每个元素只取【0,5】替换原列表的值,代码如下:

import os
import re
import difflib
import pandas as pd

# 读取文件
datafile = r'C:\Users\Administrator\Desktop\5.csv'
data = pd.read_csv(datafile,encoding = 'gb2312')
print(data)

df_main = data[data['pid']==279066].reset_index(drop=True)#为什么有时候45716不用带引号
print('----------------------')
print(df_main)
print('----------------------')

'''#每个时间戳取平均值   loc的遍历是一次性全部遍历完,不是逐一修改每一值
t = []
t = df_main.loc[:, 'time']
print(t[0:3])'''

for index, row in df_main.iterrows():
    count = row['time']
    # print(count)
    t = []
    t = count[0:-3]
    print(t)
    df_main.loc[index, 'count'] = t
    df_main = df_main
print(df_main)
df_main = df_main.drop(["vsz","mem","pid","agent"], axis=1)

# df_main = df_main.loc(:,["data","cpu","count"])
print(df_main)

#平均值处理
df_mean = df_main.groupby(['count'], as_index=False)['cpu'].sum()
print(df_mean)

#csv格式写入文件
df_mean.to_csv(r'C:\\cpusum.csv',index=False)

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值