python - 优化python代码以快速获得结果
问题描述
我会优化我的代码
我正在尝试通过仅更改列“值”的值并保留其他列的值来从我的 DataFrame 先前值创建新行。
我不知道这样做是否好“ tmp_df[:1]['Value']
”因为许多数据需要很长时间。
我只发现了这种方式。如果您有优化的想法:
import random
import pandas as pd
import numpy as np
d = {'WorkerId': [1, 2] ,'Value': [3, 4,],'WeekDay':['a','b']}
df = pd.DataFrame(data=d)
Listweek=['a','b'] #my week list
WorkerIdList=[1,2] # my worker ID
#creating a DataFrame with the same column name as df
df2 = pd.DataFrame(columns=df.columns)
for workerid in WorkerIdList:
for week in Listweek:
if(not df[ (df.WeekDay==week)].empty):
# I am taking the first row because I want to keep some value
tmp_df=df[ (df.WeekDay==week)][:1]
#Then I change a the value on the column "Value"
tmp_df[:1]['Value']= df[(df['WorkerId']==workerid)]['Value'].iloc[0] + random.randint(1, 10)
#I am doing concatenation
frames = [df2, tmp_df[:1]]
df2 = pd.concat(frames)
df2
解决方案
因为不清楚你到底想要什么,我唯一能给你的就是
df2=df.copy()
df2.Value=df2.Value+random.randint(1,10)
将给出类似的结果而不声明
Listweek=['a','b'] #my week list
WorkerIdList=[1,2] # my worker ID
推荐阅读
- vim - nvim 写为 sudo 给出错误:不存在 tty
- mysql - 如何将以下 3 个查询压缩为一个?
- python - Python - win32com 可见错误不起作用?
- sql - BigQuery:如何在窗口函数上合并 HLL 草图?(计算滚动窗口上的不同值)
- visual-studio - 通过 TextMate 系统在 Visual Studio 2017 中添加 Fortran 语法高亮
- python - 骑士巡回迭代死胡同
- mysql - 导入csv时行数不同
- python - Fastai 1.0.x 使用 torchvision 模型
- python - 从雅虎下载公司的市值
- java - 可以检测到双击 JComboBox 项目吗?