Python 如何从类似字符串的列中访问值?

Python 如何从类似字符串的列中访问值?,python,pandas,intervals,Python,Pandas,Intervals,我有一个名为interval num 40 (321.469, 326.854] 41 (326.854, 332.238] ... 68 (472.232, 477.616] 69 (477.616, 483.001] 我想键入一个代码,它将提取一个值321.469和483.001,并将它们存储到变量中 它看起来像interval类型,但不是,因为它是从excel上传的 具有实际间隔的初始df为: In [1]: df_count Out[1]:

我有一个名为
interval

                 num
40  (321.469, 326.854]
41  (326.854, 332.238]
...
68  (472.232, 477.616]
69  (477.616, 483.001]
我想键入一个代码,它将提取一个值
321.469
483.001
,并将它们存储到变量中

它看起来像interval类型,但不是,因为它是从excel上传的

具有实际间隔的初始df为:

In [1]: df_count
Out[1]:     
                       364
                  364   
    (111.479, 116.863]  1
    (116.863, 122.247]  0
    (122.247, 127.632]  1
    (127.632, 133.016]  3
    (133.016, 138.4]    0
    ... ...
    (1436.036, 1441.42] 1
    (1441.42, 1446.805] 0
    (1446.805, 1452.189]1
    (1452.189, 1457.573]0
    (1457.573, 1462.958]1
    251 rows × 1 columns
这个df是从我的过去得到的,我完全不知道如何用最多的观察次数获得大约30个间隔。我不知道为什么列的名称相同,当我试图重命名
364
时,只重命名上部364,但不重命名间隔列名称,因此我无法访问它们。所以我是这样做的:

df_count.to_excel('ranges.xlsx')
colnames=['num', 'ranges', 'itr'] 
new_df = pd.read_excel(r'ranges.xlsx', names=colnames, header=None)
new_df_sort = new_df.sort_values(by=['ranges'])
top_intervals = new_df_sort.tail(30)
new_intervals = top_intervals.sort_values(by=['num'])
intervals = pd.DataFrame(new_intervals['num'])
结果,得到前面提到的我的
间隔
数据帧。所以,也许有另一种方法可以提取大约30个范围,然后从这个间隔中获取一个最小值和最大值

有人能帮忙吗

  • 我正在用蒙特卡罗模拟来预测未来的股票 价格,所以我需要这个间隔。如果您感兴趣,我们将很高兴与您分享结果

谢谢

较低的364是指数。考虑更改当前列364的名称。你必须考虑这样做。code>df\u count.reset\u index(drop=True)可能是索引中没有0。执行
df.reset\u索引(drop=True)
No仍然不起作用
num first\u num second\u num 0(306.985132.904)None 1(312.904318.824)None None
输出
。reset\u index(drop=True)
看起来像是创建一个0索引,但下一个单元格仍然不起作用。告诉我你的索引是什么样子的?我正在使用
间隔。reset\u index(drop=True,inplace=True)
代替
间隔。重置索引(drop=True)
,因此现在我可以按索引访问行,但最后一个单元格中还有另一个错误:
AttributeError:'str'对象没有属性'str'
请立即尝试回答
intervals['num'] = intervals['num'].astype('str')

intervals['first_num'] = None
intervals['second_num'] = None

for i in range(len(intevals)):
    intervals.loc[i, 'first_num'] = ''.join(list(intervals.loc[i, 'num'].split(',')[0])[1:])
    intervals.loc[i, 'second_num'] = ''.join(list(intervals.loc[i, 'num'].split(',')[1])[:-1])