gpt4 book ai didi

python - 在引用列名和行号的同时更新数据框的元素

转载 作者:行者123 更新时间:2023-12-04 03:57:58 25 4
gpt4 key购买 nike

我来自 R 背景,习惯于使用如下语法从数据框中检索值:

r_dataframe$some_column_name[row_number]
我可以通过以下语法为数据框分配一个值:
r_dataframe$some_column_name[row_number] <= some_value
或没有箭头:
r_dataframe$some_column_name[row_number] = some_value
例如:
#create R dataframe data
employee <- c('John Doe','Peter Gynn','Jolie Hope')
salary <- c(21000, 23400, 26800)
startdate <- as.Date(c('2010-11-1','2008-3-25','2007-3-14'))
employ.data <- data.frame(employee, salary, startdate)

#print out the name of this employee
employ.data$employee[2]

#assign the name
employ.data$employee[2] <= 'Some other name'
我现在正在学习一些 Python,据我所知,从 Pandas 数据框中检索值的最直接方法是:
pandas_dataframe['SomeColumnName'][row_number]
我可以看到与 R 的相似之处。
但是,让我感到困惑的是,在修改/分配 Pandas 数据框中的值时,我需要将语法完全更改为类似的内容:
pandas_dataframe.at[row_number, 'SomeColumnName'] = some_value
阅读这段代码需要更多的注意力,因为列名和行号已经改变了顺序。
这是执行这对操作的唯一方法吗?是否有更合乎逻辑的方法来做到这一点,尊重列名和行号顺序的一致使用?

最佳答案

如果我正确理解您的意思,正如@sammywemmy 提到的,您可以使用 .loc.iloc获取/更改任何行和列中的值。
如果数据框行的顺序发生变化,则必须定义 index即使顺序已更改,也可以通过其索引获取每一行(数据点)。
像下面这样:

df = pd.DataFrame(index=['a', 'b', 'c'], columns=['time', 'date', 'name'])
现在您可以通过索引获取第一行:
df.loc['a']     # equivalent to df.iloc[0]

关于python - 在引用列名和行号的同时更新数据框的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63560406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com