我尝试了几种方法,但到目前为止仍无法获得结果。
我想获得Col_C
,它是Col_A
(行数从0到5)和Col_B
(行数从6到10)的组合
Index Col_A Col_B Col_C
0 1 2 1
1 1 3 1
2 1 6 1
3 1 3 1
4 1 9 1
5 1 3 1
6 1 2 2
7 1 4 4
8 1 6 6
9 1 7 7
10 1 1 1
我尝试过这样的事情:
df['Col_A'] = pd.concat(df['Col_A'].iloc[0:5], df['Col_B'].iloc[5:10])
我得到一个错误:
TypeError:第一个参数必须是pandas对象的可迭代对象,您 传递了“系列”类型的对象
答案 0 :(得分:0)
您需要:
df = pd.DataFrame({'a':[1]*11, 'b':[2,3,6,3,9,3,2,4,6,7,1]})
x = list(df.loc[:5,'a']) # + df.iloc[6:,'b']
x.extend(list(df.loc[6:,'b']))
df['c'] = x
print(df)
替代解决方案:使用np.where
df['c'] = np.where(df.index < 6, df['a'], df['b'])
答案 1 :(得分:0)
给出一个df:
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray = 255-gray
ret, thresh = cv2.threshold(gray, 225, 255, cv2.THRESH_BINARY_INV)
image, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
frame = cv2.drawContours(frame, contours, -1,(0,0,255),3)
要做:
Col_A Col_B Col_C
0 1 2 3
1 1 2 3
2 1 2 3
3 1 2 3
4 1 2 3
5 1 2 3
6 1 2 3
7 1 2 3
8 1 2 3
9 1 2 3
10 1 2 3
出局:
df['Col_C'] = pd.concat((df['Col_A'].iloc[:6], df['Col_B'].iloc[6:]))