我有一个看起来像这样的数据框(temp_table)
0 1 index TF SASA
6.5227469102210085 222.0 227 False 0.020834600771546936
3.7721281528298034 223.0 224 False 0.25000423735995525
5.582663533428659 223.0 225 True 0.8578536501672815
5.314596793152923 223.0 226 False 0.15678231834437872
6.107712830515959 223.0 227 False 0.020834600771546936
3.8005850006883994 224.0 225 False 0.8578536501672815
5.604560057482539 224.0 226 False 0.15678231834437872
5.6112774758639885 224.0 227 False 0.020834600771546936
5.3685540383952395 224.0 228 False 0.3081807524138729
如果索引= 225,我想使列'TF'为True。理想输出为
0 1 index TF SASA
6.5227469102210085 222.0 227 False 0.020834600771546936
3.7721281528298034 223.0 224 False 0.25000423735995525
5.582663533428659 223.0 225 True 0.8578536501672815
5.314596793152923 223.0 226 False 0.15678231834437872
6.107712830515959 223.0 227 False 0.020834600771546936
3.8005850006883994 224.0 225 True 0.8578536501672815
5.604560057482539 224.0 226 False 0.15678231834437872
5.6112774758639885 224.0 227 False 0.020834600771546936
5.3685540383952395 224.0 228 False 0.3081807524138729
我尝试使用
temp_table.loc[temp_table.index == 225, 'TF'] = True
但是,数据帧在Spyder变量查看器中保持不变。我做错了什么吗?我应该完全尝试其他方法吗?
更新1
temp_table.columns
Out[98]: Index([0, 1, 'index', 'TF', 'SASA'], dtype='object')
temp_table['index'] == 225
Out[99]:
0 False
1 False
3 False
4 False
7 False
8 False
9 False
12 False
13 False
14 False
15 False
16 False
19 False
20 False
21 False
22 False
23 False
24 False
27 False
28 False
29 False
30 False
31 False
32 False
35 False
36 False
37 False
38 False
39 False
40 False
3393 False
3394 False
3395 False
3396 False
3399 False
3400 False
3401 False
3402 False
3405 False
3406 False
3410 False
3411 False
3416 False
3417 False
3426 False
3427 False
3437 False
3438 False
3449 False
3450 False
3458 False
3459 False
3465 False
3466 False
3478 False
3488 False
3489 False
3497 False
3498 False
3504 False
Name: index, Length: 1754, dtype: bool
更新2
temp_table['index'].head(10).to_dict()
Out[118]:
{0: ' 1',
1: ' 2',
3: ' 2',
4: ' 3',
7: ' 3',
8: ' 4',
9: ' 18',
12: ' 4',
13: ' 5',
14: ' 18'}
答案 0 :(得分:0)
因为temp_table.index
是temp_table
的索引,所以它不是列index
。使用方括号
temp_table.loc[temp_table['index'].str.strip() == '225', 'TF'] = True
Out[280]:
0 1 index TF SASA
0 6.522747 222.0 227 False 0.020835
1 3.772128 223.0 224 False 0.250004
2 5.582664 223.0 225 True 0.857854
3 5.314597 223.0 226 False 0.156782
4 6.107713 223.0 227 False 0.020835
5 3.800585 224.0 225 True 0.857854
6 5.604560 224.0 226 False 0.156782
7 5.611277 224.0 227 False 0.020835
8 5.368554 224.0 228 False 0.308181
答案 1 :(得分:0)
您可以使用:
df.TF = (df['index'] == 225)
或多个值:
df.TF = df['index'].apply(lambda x: x in [225,...])
答案 2 :(得分:0)
尝试一下:
temp_table['TF'] = [int(x) == 225 for x in temp_table['index']]