df2 = df2.append(df1, ignore_index=True)将df1作为行添加到df2中时,提示'DataFrame' object has no attribute 'append'
时间: 2024-06-12 16:01:39 浏览: 141
如果您在使用 'DataFrame' object 的时候提示 'DataFrame' object has no attribute 'append' 的话,有可能是您的 pandas 版本太低。这个方法在新版的 pandas 中已经被弃用了。您可以使用concat()函数来实现行添加操作,例如:df2 = pd.concat([df2, df1], ignore_index=True)。这个函数的第一个参数是要拼接的 DataFrame 列表,第二个参数 ignore_index=True 表示忽略原有索引并重新生成新的索引。
相关问题
Traceback (most recent call last): File "D:\可信甄别\demo.py", line 22, in <module> jiont_vector("变道1.3.csv","变道向量1.1") File "D:\可信甄别\demo.py", line 17, in jiont_vector new_df = new_df.append(df.iloc[i], ignore_index=True) File "D:\可信甄别\venv\lib\site-packages\pandas\core\generic.py", line 5989, in __getattr__ return object.__getattribute__(self, name) AttributeError: 'DataFrame' object has no attribute 'append'
这个错误提示是因为您在使用 Pandas 的 DataFrame 对象时,调用了不存在的方法 `append`。可能是您的 Pandas 版本较低,不支持该方法,您可以尝试使用 `concat` 方法来合并 DataFrame。具体操作可以参考以下代码:
```python
import pandas as pd
def jiont_vector(file1, file2):
df1 = pd.read_csv(file1)
df2 = pd.read_csv(file2)
new_df = pd.concat([df1, df2], ignore_index=True)
new_df.to_csv("new_file.csv", index=False)
jiont_vector("变道1.3.csv","变道向量1.1")
```
这样应该可以解决您的问题。如果还有其他问题,请随时问我。
Traceback (most recent call last): File "C:\Users\admin\AppData\Local\Programs\Python\Python310\1.py", line 23, in <module> fifo_df = fifo_df.append({'Product': row['Product'], 'Date': row['Date'],'Quantity': row['Quantity'], 'Cost': cost}, ignore_index=True) File "C:\Users\admin\AppData\Local\Programs\Python\Python310\lib\site-packages\pandas\core\generic.py", line 5989, in __getattr__ return object.__getattribute__(self, name) AttributeError: 'DataFrame' object has no attribute 'append'. Did you mean: '_append'?
这个错误提示是因为您使用的是 Pandas 1.3.0 及以上版本,而在这些版本中,Pandas 已经取消了 DataFrame 的 append 方法。您可以将多个 DataFrame 放到一个列表中,然后使用 Pandas 的 concat 方法将它们连接起来,如下所示:
```
dfs = [df1, df2, df3]
result = pd.concat(dfs)
```
在您的代码中,您可以将以下行:
```
fifo_df = fifo_df.append({'Product': row['Product'], 'Date': row['Date'], 'Quantity': row['Quantity'], 'Cost': cost}, ignore_index=True)
```
替换为以下代码:
```
new_row = {'Product': row['Product'], 'Date': row['Date'], 'Quantity': row['Quantity'], 'Cost': cost}
fifo_df = pd.concat([fifo_df, pd.DataFrame(new_row, index=[0])], ignore_index=True)
```
这样就可以避免使用 append 方法,并且代码仍然可以正确地将新行添加到 DataFrame 中。
阅读全文