如何解决如何通过dict内部的dict映射df
iam tryin通过检查我的字典中是否有一个col的值来更改特定行上的值。
这是我的数据
if (Input::hasFile('logo')) {
$file = Input::file('logo');
$ext = $file->getClientOriginalExtension();
$file_name = 'company-logo-' . time() . ".{$ext}";
$path = base_path().'/public/';
$file->move($path,$file_name);
}
我的字典是
data={"col1":[np.nan,3,4,5,9,2,6],"col2":[4,6,1,5],"col3":[7,11,7],"col4":[14,22,8,np.nan,9],"col5":[0,7,"type":["B","A","C","B","E"],"number":["one","two","one","two"]}
df=pd.DataFrame.from_dict(data)
那是我尝试的
my_dict={"F":{"col1":2,"col2":44,"col3":0},"B":{"col1":0,"col2":11,"col3":4,"col4":50,"col5":np.nan}}
但是我进入每个单元格列表而不是一个值
我喜欢得到这个
my_dict={"F":{"col1":2,"B":
{"col1":0,"col5":np.nan}}
col_list=df.columns[:-2]
m = df["type"].isin(my_dict)
df.loc[m,col_list] = df.loc[m,col_list].apply(lambda d:
pd.Series.map(df["type"],my_dict))
df
解决方法
我们可以尝试update
updatedf=pd.DataFrame(my_dict).T.reindex(df.type)
updatedf.index=df.index
df.update(updatedf)
df
Out[21]:
col1 col2 col3 col4 col5 type number
0 0.0 11.0 4.0 50.0 0 B one
1 3.0 2.0 6.0 11.0 5 A two
2 4.0 4.0 0.0 22.0 7 C two
3 5.0 6.0 11.0 8.0 3 A one
4 0.0 11.0 4.0 50.0 8 B one
5 2.0 1.0 6.0 NaN 2 A two
6 6.0 5.0 7.0 9.0 9 E two
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。