【问题标题】:Append not working with DataFrames in for loop在 for 循环中追加不使用 DataFrame
【发布时间】:2019-10-24 09:13:06
【问题描述】:

我有一个包含 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

【问题讨论】:

    标签: python dataframe append


    【解决方案1】:
    result0.append(result1,ignore_index=True,sort=False)
    

    Append 返回新的数据框。它不会就地发生。你需要:

    result0 = result0.append(result1,ignore_index=True,sort=False)
    

    还要注意append 非常昂贵。可能值得关注pd.concat

    【讨论】:

      猜你喜欢
      • 2017-10-12
      • 2018-10-04
      • 2014-02-26
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多