我有数据框in
import pandas as pd
in = pd.DataFrame(
columns=[1, 2],
data= [['a','b'],['c','d']],
)
in
1 2
0 a b
1 c d
,并希望用索引(行,列)替换单个值(在此:d
用z
)产生数据帧out
:
1 2
0 a b
1 c z
如何用最有效的索引(在这里,行idx为1,列idx为1)(内存消耗,执行时间)替换值?
答案 0 :(得分:1)
如果要按位置设置值,请使用DataFrame.iloc
(第一个值为0
,因为python从0
开始计数)
df.iloc[1,1] = 'z'
或者如果要通过标签(索引和列值)设置,请使用DataFrame.loc
:
df.loc[1,2] = 'z'
如果只想设置一个更好的值,则使用DataFrame.iat
或
DataFrame.at
:
#by positions
df.iat[1,1] = 'z'
#by labels
df.at[1,2] = 'z'