我有一个包含3列的时间序列。我需要在最后一行之后复制第2列,并与第3列相同。
我创建了一个for循环并追加数据帧,但追加似乎不起作用。没有错误或警告,只是行不通。
初始DataFrame dataImport_selVar100:
val01_ambient_temperature val01_ambient_winddir val01_ambient_windspeed
measure_time
2019-03-24 07:30:00 12.956060 108.200005 4.166667
2019-03-24 07:40:00 12.999207 103.000000 3.666667
2019-03-24 07:50:00 12.761206 106.500000 4.533333
2019-03-24 08:00:00 12.523205 98.413330 3.916667
2019-03-24 08:10:00 12.285204 97.853333 4.055000
代码:
counterTest=0
for column in dataImport_selVar100:
if counterTest==0: #initialize
result0=pd.DataFrame(dataImport_selVar100.iloc[:,counterTest])
else:
result1=pd.DataFrame(dataImport_selVar100.iloc[:,counterTest])
result0.append(result1,ignore_index=True,sort=False)
#print(result[column])
counterTest +=1
实际结果只是来自result0(100行)的结果
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 100 entries, 2019-03-24 07:30:00 to 2019-03-25 00:00:00
Data columns (total 1 columns):
val01_ambient_temperature 100 non-null float64
dtypes: float64(1)
memory usage: 6.6 KB
预期结果是所有行的总和
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 300 entries, 2019-03-24 07:30:00 to 2019-03-25 00:00:00
Data columns (total 3 columns):
val01_ambient_temperature 100 non-null float64
val01_ambient_winddir 100 non-null float64
val01_ambient_windspeed 100 non-null float64
dtypes: float64(2)
memory usage: 7.0 KB
答案 0 :(得分:0)
result0.append(result1,ignore_index=True,sort=False)
Append返回新的数据框。它不会就地发生。您需要:
result0 = result0.append(result1,ignore_index=True,sort=False)
还请注意,append
的成本很高。值得考虑pd.concat
。