x = [0, 1, 2, 3, 4]
x[3] = 5
print(x)
[0, 1, 2, 5, 4]
这就是我想做的一切。什么是确保这种情况发生的可靠方法,我不太担心这里的效率。
非常感谢你。
答案 0 :(得分:3)
import pandas as pd
import numpy as np
df = pd.DataFrame(
np.arange(25).reshape(5, 5),
list('abcde'), list('ABCDE'))
# this is the problem assignment that is causing the warning
d1 = df[['A', 'B']]
d1.loc['a', 'A'] = 99
loc
来创建副本d2 = df.loc[:, ['A', 'B']]
d2.loc['a', 'A'] = 99
d2
A B
a 99 1
b 5 6
c 10 11
d 15 16
e 20 21
定义一个函数,尝试在传递的数据帧的第一个元素上进行赋值。
def try_assignment(df):
df.iloc[0, 0] = 1000
现在让我们测试一些案例
True
try_assignment(df[['A']])
try_assignment(df[:-1])
try_assignment(df.iloc[:, :-1])
False
try_assignment(df.loc[:, 'A'])
try_assignment(df[:])
try_assignment(df.loc[:, df.columns[:-1]])
try_assignment(df.loc[df.index[1:], df.columns[1:]])
try_assignment(df[['A']].copy())