r是具有五个columsn i,j,k,l,m
的数据帧以下是我的代码,
for i in pd.unique(r.id):
sub=r[(r.id==i)] //subsetting the dataframe for each ID
sub=sub.drop_duplicates(["i","j","k","l","m"]) // dropping the duplicates
sub['k']=pd.to_datetime(sub['k'],unit='s',utc=False)
g=int(sub.iloc[0]['m']) // want to get the first value of the column
if g>64:
r=(g/64)-1
else:
r=0
if(len(sub)>1):
sub.m=r*64 + m
这适用于一个ID。如果有多个ID,我会收到,
Traceback (most recent call last):
File "C:/project1/Final.py", line 90, in <module>
sub=r[(r.id==i)]
AttributeError: 'int' object has no attribute 'id'
有人可以帮我解决这个问题吗?我想循环r数据帧中的所有ID,以便我可以进行一些计算。
答案 0 :(得分:0)
在for循环中,用int:
覆盖数据帧rif g>64:
r=(g/64)-1
else:
r=0
这对一个ID很好,因为在第一次迭代时r仍然是一个数据帧。
它失败了多个ID,因为在第二次迭代中它已被int覆盖,并抛出错误。