我需要一些帮助。我正在尝试更改.csv文件中的一列,其中有些是空的,有些是带有类别列表的。具体如下:
tdaa_matParent,tdaa_matParentQty
[],[]
[],[]
[],[]
[BCA_Aluminum],[1.3458]
[BCA_Aluminum],[1.3458]
[BCA_Aluminum],[1.3458]
[BCA_Aluminum],[1.3458]
[],[]
[Dye Penetrant Solution, BCA_Aluminum],[0.002118882, 1.3458]
但到目前为止,我只对第一列(tdaa\u matParent)进行了二值化,但无法将1替换为相应的数量值,如下所示。你知道吗
s = materials['tdaa_matParent']
mlb = MultiLabelBinarizer()
df = pd.DataFrame(mlb.fit_transform(s),columns=mlb.classes_)
BCA_Aluminum,Dye Penetrant Solution,tdaa_matParentQty
0,0,[]
0,0,[]
0,0,[]
1,0,[1.3458,0]
1,0,[1.3458,0]
1,0,[1.3458,0]
1,0,[1.3458,0]
0,0,[]
1,1,[1.3458,0.002118882]
但我真正想要的是每种色谱柱类别的一组新色谱柱(即BCA\ U铝和染料渗透液)。另外,如果填充,则每列都将被第二列的(tdaa\u matParentQty)值替换。你知道吗
例如:
BCA_Aluminum,Dye Penetrant Solution
0,0
0,0
0,0
1.3458,0
1.3458,0
1.3458,0
1.3458,0
0,0
1.3458,0.002118882
对于问题中提供的示例数据,我将使用内置的Python方法来实现这一点:
输出:
0.002119
而不是0.002118882
是因为默认情况下pandas显示float的方式,原始精度保留在dataframe中的实际数据中。你知道吗谢谢!我构建了另一种同样有效的方法(尽管有点慢)。任何建议,请随时分享:)
相关问题 更多 >
编程相关推荐