python – 访问dataframe列中值的最佳方法是什么?

python – 访问dataframe列中值的最佳方法是什么?,第1张

概述比如我有 df=pd.DataFrame({'a':[1,2,3]})df[df['a']==3].a = 4 这不会将4分配给3 df[df['a']==3] = 4 但这很有效. 它使我对如何分配工作感到困惑.感谢是否有人可以给我一些参考或解释. 您不想使用第二种方法.它返回一个数据帧子切片,并为每一行分配相同的值. 例如, df a b0 1 41 2 32 3 比如我有

df=pd.DataFrame({'a':[1,2,3]})df[df['a']==3].a = 4

这不会将4分配给3

df[df['a']==3] = 4

但这很有效.

它使我对如何分配工作感到困惑.感谢是否有人可以给我一些参考或解释.

解决方法 您不想使用第二种方法.它返回一个数据帧子切片,并为每一行分配相同的值.

例如,

df   a  b0  1  41  2  32  3  6df[df['a'] == 3]   a  b2  3  6df[df['a']==3] = 3df   a  b0  1  41  2  32  3  3

第一种方法不起作用,因为布尔索引返回您尝试分配给的列(系列)的副本,因此赋值失败:

df[df['a'] == 3].a = 4/library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/pandas/core/generic.py:3110: SettingWithcopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.Try using .loc[row_indexer,col_indexer] = value insteadSee the caveats in the @R_403_4617@ation: http://pandas.pydata.org/pandas-docs/stable/indexing.HTML#indexing-vIEw-versus-copy  self[name] = value

因此,您的选项使用基于索引的.loc(按名称访问)或iloc(按索引访问):

df.loc[df.a == 3,'a'] = 4df   a0  11  22  4

如果要传递布尔掩码,则不能使用iloc.

总结

以上是内存溢出为你收集整理的python – 访问dataframe列中值的最佳方法是什么?全部内容,希望文章能够帮你解决python – 访问dataframe列中值的最佳方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存