new_df = pd.DataFrame(columns=df.columns) for i in range(4, len(df)): if df.iloc[i, 0] == df.iloc[i-2, 0] and df.iloc[i, 3]-df.iloc[i-2, 3] == 200: row1 = df.iloc[i] row2 = df.iloc[i - 2] new_row = pd.concat([row1, row2], axis=0) new_df = new_df.append(new_row, ignore_index=False)AttributeError: 'DataFrame' object has no attribute 'append'
时间: 2023-12-09 17:05:56 浏览: 103
这个错误提示是因为在调用 `append` 方法时,使用的是 DataFrame 类型的对象 `new_df` ,而 DataFrame 没有 `append` 属性。可以尝试将 `ignore_index` 设置为 `True`,如下所示:
```
new_df = new_df.append(new_row, ignore_index=True)
```
或者,可以使用 `concat` 方法来将新行添加到 DataFrame 中:
```
new_df = pd.concat([new_df, new_row], ignore_index=True)
```
相关问题
University_df = pd.DataFrame(columns= ['from','to','weight']) for i in range(1,len(NXdata)): for j in range(i,len(NXdata)): if NXdata.iloc[i,j] > 0: df = pd.DataFrame([[NXdata.iloc[i,0],NXdata.iloc[j,0],NXdata.iloc[i,j]]],columns= ['from','to','weight']) University_df = University_df.append(df) 怎么把weight'列所有数据相加
要将'weight'列的所有数据相加,可以使用`sum()`函数。以下是一种可能的实现方式:
```python
total_weight = University_df['weight'].sum()
print(total_weight)
```
上述代码将计算'weight'列的总和,并将结果打印输出。你可以根据需要将结果存储到变量中,或进行其他操作。
确保已经导入了`pandas`库,并且DataFrame `University_df`已经正确填充了数据。
请将下面代码改为只计算最近10步的标准差: # 时间窗口大小为10 window_size = 1 # 将历史数据按时间顺序分成多个时间窗口,并计算每个时间窗口内的标准差 sd_list = [] for i in range(0, len(forestdata), window_size): window_data = forestdata.iloc[i:i+window_size, :] sd = np.std(window_data, axis=0) sd_list.append(sd) # 将计算得到的标准差值添加到DataFrame中 sd_df = pd.DataFrame(sd_list, columns=forestdata.columns) forestdata = pd.concat([forestdata, sd_df], axis=0, join='outer')
以下是修改后代码,可以只计算最近10步的标准差:
```python
import numpy as np
import pandas as pd
# 将历史数据按时间顺序分成多个时间窗口,并计算每个时间窗口内的标准差
window_size = 10
sd_list = []
for i in range(max(0, len(forestdata) - window_size), len(forestdata)):
window_data = forestdata.iloc[i:i+window_size, :]
sd = np.std(window_data, axis=0)
sd_list.append(sd)
# 将计算得到的标准差值添加到DataFrame中
sd_df = pd.DataFrame(sd_list, columns=forestdata.columns)
forestdata = pd.concat([forestdata, sd_df], axis=0, join='outer')
```
此代码会在原有的 DataFrame 上添加一些新行,这些行表示最近10个时间步的标准差。请注意,由于可能存在不足10个时间步的情况,因此我们需要使用 `max(0, len(forestdata) - window_size)` 作为起始索引,以确保我们只用最近的10个时间步计算标准差。
阅读全文