为了账号安全,请及时绑定邮箱和手机立即绑定

pandas0.10.1至0.11.0 .ix方法

pandas0.10.1至0.11.0 .ix方法

慕侠2389804 2021-03-31 14:54:11
我有一个巨大的具有唯一索引的数据框。这在pandas 0.10.1中是有效的代码,但在pandas 0.11.0中似乎已中断。简而言之,我有一个包含两列的DataFrame(df):“分类”和“ A”,均填充有数据。该df具有唯一索引。如果“分类”不在某个列表中,我想覆盖A中的值。# df contains the original dataaccurate_list = ['corr1', 'corr2', 'corr3']# x is filtered dataframe with only inaccurate entriesx = df[~df.Classification.isin(accurate_list)]df.ix[x.index,'A'] = df['Classification']对不起,无法弄清楚如何在此处获取一些示例数据。问题似乎出在.ix方法的最后一行。从熊猫0.11.0引用什么是新文档http://pandas.pydata.org/pandas-docs/dev/whatsnew.html#v0-11-0-april-22-2013:“ .ix支持基于整数和标签的混合访问。它主要基于标签,但将回退到整数位置访问。.ix是最通用的,将支持.loc和.iloc的任何输入,并支持浮点标签方案。.ix在处理混合的位置和基于标签的层次结构索引时特别有用。”没有异常消息...虽然数据似乎失去对齐。有任何想法,如果这是一个熊猫错误或我在熊猫0.10.1中编写了错误的代码?这是一些示例代码。那说明了问题:accurate_ICB = ['SA EQUITY CFD', 'SA EQUITY', 'SA SSF']print pd.__version__data = {'Classification': ['SA EQUITY CFD', 'bbb', 'SA EQUITY', 'SA SSF', 'aaa'],    'Random': [1,2,3,4,5],    'X': ['correct', 'wrong','correct', 'correct','wrong']}df =pd.DataFrame(data)print "Original DataFrame:"print dfprint "="*35x = df[~df.Classification.isin(accurate_ICB)]print xprint "="*35df.ix[x.index,'X'] = df['Classification']print df在熊猫0.10.1中,它产生:  Classification  Random        X0  SA EQUITY CFD       1  correct1            bbb       2      bbb2      SA EQUITY       3  correct3         SA SSF       4  correct4            aaa       5      aaa在熊猫0.11.0中,右下角aaa变为bbb。被检查的列与被更改的列之间的所有列似乎触发更改的行为
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 143 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信