series.replace()我在做什么错?

时间:2019-10-30 09:53:27

标签: python-3.x pandas

我正尝试将pd.Series中的整数值替换为其他整数值,如下所示。我正在使用类似dict的替换:

ser_list = [pd.Series([65, 1, 0, 0, 1]), pd.Series([0, 62, 1, 1, 0])]
for ser in ser_list:
    ser.replace({65: 10, 62: 20})

我期待结果:

[10, 1, 0, 0, 1] # first series in the list
[0, 20, 1, 1, 0] # second series in the list

在第一个系列中,应将65替换为10,在第二个系列中应将62替换为20。

但是,在此代码中,它返回了原始序列而没有任何替换。有什么线索吗?

2 个答案:

答案 0 :(得分:4)

可以通过if

ionic cordova build android --prod --release

但不建议像评论中提到的@Dan一样-link

  

pandas核心团队不鼓励使用 inplace 参数,最终将不推荐使用该参数(这意味着“计划从库中删除”)。原因如下:

     

就地在方法链中不起作用。
  与名称所暗示的相反,使用 inplace 通常不会阻止创建副本。
  删除 inplace 选项将降低熊猫代码库的复杂性。

或分配给列表理解中的相同变量:

@Bean
@ConditionalOnProperty(
  name = "usemysql", 
  havingValue = "local")
@ConditionalOnMissingBean
public DataSource dataSource() {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();

    dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/myDb?createDatabaseIfNotExist=true");
    dataSource.setUsername("mysqluser");
    dataSource.setPassword("mysqlpass");

    return dataSource;
}

可以通过添加到新列表并分配回去来实现循环解决方案:

inplace=True

答案 1 :(得分:1)

我们还可以将using System;Series.mapfillna结合使用:

list comprehension
相关问题