我有一个带有邮政编码和收入的数据框。一些收入是= 0,这是错误的。
我有一个字典,每个邮政编码都映射到该邮政编码中所有收入的平均收入。
我想将数据框中= 0的所有收入替换为相应邮政编码的平均收入值。
我试过这个:
income = []
for row in df['income']:
if row == 0:
income.replace({0:{income_zip}}, inplace = True)
else:
income.append(row)
无济于事。我发现有很多资源用相同的值替换所有0,我只是不确定如何根据行中的另一个值从dict中替换一个带有变量值的0。
答案 0 :(得分:1)
您还可以定义转换函数,并沿轴1(行)在数据框上使用#include <experimental/thread_pool>
#include <iostream>
#include <tuple>
namespace execution = std::experimental::execution;
using std::experimental::static_thread_pool;
template <class Executor, class Function>
auto async(Executor ex, Function f)
{
return execution::require(ex, execution::twoway).twoway_execute(std::move(f));
}
int main()
{
static_thread_pool pool{1};
auto f = async(pool.executor(), []{ return 42; });
std::cout << "result is " << f.get() << "\n";
}
:
apply
答案 1 :(得分:0)
income = []
for row in df['income']:
if row == 0:
df['income'].replace({0:{income_zip}}, inplace = True)
else:
income.append(row)
答案 2 :(得分:0)
或者这个单行:
df['income'] = map(lambda x, y : y if y != 0 else income_zip[x], *[df['zip_codes'], df['income']])