我试图编写一个函数,使用户能够轻松地选择pandas数据帧中的特定单元格并更改其值。例如,在下面的数据框中,我希望用户能够通过日期和操作选择单元格,比如“2018-03-02”和“肥料”,然后将值更改为“1”。在
我已经在2018-03-02和“剪切”中使用了这个代码(数据帧名为q):
q.iat[1,1]=1
但是,我希望能够使用q.iat["2018-03-02", "Cutting"]=1
之类的方法来更改单元格,但不确定如何执行此操作,因为它说.iat
只识别整数位置。除了.iat
之外,还有什么可以使用的吗?或者我需要为每个日期和每一列设置一个字典吗?在
您的数据帧使用列名称和索引编制索引。你可以用 set_index:
df.set_index('date')
然后使用日期索引和“剪切”列更改带有.loc的值:
df.loc('2018-03-02','Cutting') = 1
只需使用pandas的名称,就可以在pandas中按名称选择列:
q['Manure']
为了选择行,您需要一个索引来唯一地标识这些行,如果您确保它的格式能够唯一地标识这些行,那么这可能就是日期。 例如:
q = q.set_index(pd.DatetimeIndex(q['Dates']))
然后您可以选择每个单元格执行以下操作:
q.loc[<rowIndex>, <colName>]
^{}
使用^{} 代替
iat
实现基于标量标签的高效索引:致summarise:
相关问题 更多 >
编程相关推荐