我想根据第1列和第2列或第3列的值创建一个新列“column\u new”。如果第1列=='C',则第2列的值与第2列的值相同,但如果第1列=='G',则第3列的值与第3列的值相同
我试过:
def new_value(x):
if df1['column_1'] == 'C' :
return df1['column_2']
if df1['column_1'] == 'G':
return df1['column_3']
else:
return 'Other'
df1['column_new'] = df1['column_1'].apply(new_value)
错误:值错误:序列的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()
也尝试过:
for row in df1:
if df1.loc[df1['column_1'] == 'C']:
df1['column_new'] = df1['column_2']
elif df1.loc[df1['column_1'] == 'G']:
df1['column_new'] = df1['column_3']
错误:值错误:数据帧的真值不明确。使用a.empty、a.bool()、a.item()、a.any()或a.all()
一些数据:
column_1 column_2 column_3
C AAAACCCACCT ACCCA
C GTGGGCTAAAA GGCTA
G ATGGGCTTTTT GGCTT
G AGAAAGCCCGC AAGCC
我想出来了:
试试
np.select
您可以尝试: 希望能成功
相关问题 更多 >
编程相关推荐