我遇到了这个问题,请帮助:
我有一个dataframe和一个系列,如下所示:
import pandas as pd
df1 = pd.DataFrame({"ID": [4,8,35,28,34,34,14,28],
"cause of failure": [5,3,0,1,7,8,6,7],
"crash": [0,0,0,1,1,1,1,1]})
我有一个系列:
s = pd.DataFrame({'':["None","Design flaw","metal fatigue","Manufacturing flaw","Pilot
error","Mechanical failure","Improper maintenance","Fire","Corrosion"]})
#为了添加新列,我编写了add#u column函数,在函数中我将s1转换为#一个字典,但是
def add_column(df,s, ref_column, new_column):
dict_s = s.to_dict(orient='dict')
#dict_s = s.loc[0:].to_dict(orient='index')
error', 5: 'Mechanical failure', 6: 'Improper maintenance', 7: 'Fire', 8: 'Corrosion'}
df[new_column] = df[ref_column].map(dict_s)
return df
add_column(df1,s1,"failure code","failure")
#我不希望将空标题放入字典,只希望序列的键值对
{'': {0: 'None', 1: 'Design flaw', 2: 'metal fatigue', 3: 'Manufacturing flaw', 4: 'Pilot error', 5: 'Mechanical failure', 6: 'Improper maintenance', 7: 'Fire', 8: 'Corrosion'}}
#Like this:
{0: 'None', 1: 'Design flaw', 2: 'metal fatigue', 3: 'Manufacturing flaw', 4: 'Pilot error', 5: 'Mechanical failure', 6: 'Improper maintenance', 7: 'Fire', 8: 'Corrosion'}
我弄不好这本词典
#然后我想映射此字典以匹配列“failure code”中的代码,并将其添加为新列“failure” 最后,我想向df1数据帧添加一个新的列失败
结果应如下所示:
ID failure code crash failure
1 8 3 0 Manufacturing flaw
2 35 0 0 None
3 28 1 1 Design flaw
4 34 7 1 Fire
5 34 8 1 Corrosion
6 14 6 1 Improper maintenance
7 28 7 1 Fire
您的
s
不是一个系列,而是一个数据帧。在map
中使用序列:输出:
或者直接构建一个系列:
相关问题 更多 >
编程相关推荐