Warning (from warnings module): File "C:\Users\DELL\Desktop\次席切换比对\比对.py", line 15 time[m] = i SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy Traceback (most recent call last): File "C:\Users\DELL\Desktop\次席切换比对\比对.py", line 14, in <module> i = i.strftime("%Y-%m-%d") AttributeError: 'int' object has no attribute 'strftime'
时间: 2024-03-08 11:47:41 浏览: 178
这个警告提示你正在尝试对一个 DataFrame 的切片副本进行赋值操作。在 pandas 中,通过切片方式获取的 DataFrame 子集可能是其原始数据的副本,而不是对原始数据的引用。因此,在对切片进行赋值时,可能会发生警告或错误。
为了避免这个警告,你可以使用 `loc` 或 `iloc` 方法来选择要修改的 DataFrame 的行和列。例如,如果你想要修改 DataFrame 的某些行的某些列,可以使用以下代码:
```python
import pandas as pd
df = pd.DataFrame({ 'col1': [1, 2, 3], 'col2': [4, 5, 6], 'col3': [7, 8, 9] })
# 使用 loc 方法选择要修改的行和列
df.loc[0:1, 'col2'] = [10, 11]
print(df)
```
输出:
```
col1 col2 col3
0 1 10 7
1 2 11 8
2 3 6 9
```
在上面的例子中,我们使用 `df.loc` 方法选择需要修改的行和列,然后将其赋值为新的值。这样就不会触发警告或错误。
阅读全文