鑑於以下數據幀中的其他數據幀行:大熊貓創建列是與標準
import pandas as pd
import numpy as np
pos = pd.DataFrame({'Station(s)':[',1,2,,','0,1,2,3,4'],
'Position':['Contractor','President'],
'Site(s)':['A,B','A'],
'Item(s)':['1','1,2']
})
pos[['Position','Site(s)','Station(s)','Item(s)']]
pos
Position Site(s) Station(s) Item(s)
0 Contractor A,B ,1,2,, 1
1 President A 0,1,2,3,4 1,2
和
sd = pd.DataFrame({'Site':['A','B','B','C','A','A'],
'Station(s)':[',1,2,,',',1,2,,',',,,,',',1,2,,','0,1,2,,',',,2,,'],
'Item 1':[1,1,0,0,1,0],
'Item 2':[1,0,0,1,1,1]})
sd[['Site','Station(s)','Item 1','Item 2']]
sd
Site Station(s) Item 1 Item 2
0 A ,1,2,, 1 1
1 B ,1,2,, 1 0
2 B ,,,, 0 0
3 C ,1,2,, 0 1
4 A 0,1,2,, 1 1
5 A ,,2,, 0 1
我想這個落得:
Contractor President Site(s) Station(s) Item 1 Item 2
0 1 1 A ,1,2,, 1 1
1 1 0 B ,1,2,, 1 0
2 0 0 B ,,,, 0 0
3 0 0 C ,1,2,, 0 1
4 0 1 A 0,1,2,, 1 1
5 1 1 A ,,2,, 0 1
results = pd.DataFrame({'Contractor':[1,1,0,0,0,1],
'President':[1,0,0,0,1,1],
'Site(s)':['A','B','B','C','A','A'],
'Station(s)':[',1,2,,',',1,2,,',',,,,',',1,2,,','0,1,2,,',',,2,,'],
'Item 1':[1,1,0,0,1,0],
'Item 2':[1,0,0,1,1,1]})
results[['Contractor','President','Site(s)','Station(s)','Item 1','Item 2']]
基於此邏輯:
對於每種立場:
在sd中用該位置的名稱創建一個新列。
使其值等於1,其中滿足以下條件的每行(否則爲0用於其它行):
一個。 sd ['Site']在pos ['Site(s)']中包含至少1個值。
b。 SD [站(S)「]包含在POS發現至少有1號[站(S)」],但沒有額外的數字
我開始用這個,但被及時打回來就範:
for i in pos['Position']:
sd[i]= 1 if lambda x: 'x' if x for x in pos['Site(s)'] if x in sd['Site']
令人難以置信。再次感謝。整齊的數據信息非常感謝。不幸的是,我從提供數據的組織處收到「不整潔」狀態的數據,但我肯定會將有關整齊數據的信息傳遞給它們。 –