【发布时间】:2021-10-15 22:50:51
【问题描述】:
我有以下数据集:
如果 Crack == "Y",我需要使用 Outright1 和 Outright2 中的名称添加 2 个新行。但是 Outright2 的位置将乘以 -1。
我已经应用了以下方法:
for i in data.index:
if(data.Crack[i]=="Y"):
new_row = {'Position':data['Position'][i],'Contract':data['Outright1'][i],'Outright1':np.nan,'Outright2':np.nan,'Crack':"N"}
new_row2 = {'Position':data['Position'][i]*-1,'Contract':data['Outright2'][i],'Outright1':np.nan,'Outright2':np.nan,'Crack':"N"}
data = data.append(new_row, ignore_index = True)
data = data.append(new_row2, ignore_index = True)
但是只是想知道是否有更好、更有效的编码方式?
【问题讨论】:
-
我不知道还有什么比
data[data['Crack']=='N']更高效或更好。您可以查看屏蔽 numpy 数组。
标签: python pandas for-loop if-statement