如何从类似字符串的列中访问值?
How to access a value from string-like column?
我有一个名为 intervals
的 pandas 数据框
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
并将它们存储到变量中。
它看起来像间隔类型但实际上不是,因为它是从 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
时,仅重命名了 upper 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'])
因此,得到我前面提到的 intervals
数据框。所以,也许还有另一种方法可以提取大约 30 个范围,然后从这个间隔中获取最小值和最大值。
有人能帮忙吗?
- 我正在使用蒙特卡洛模拟来预测未来股票
价格,所以这就是为什么我需要这个间隔。如果您有兴趣,我们很乐意分享结果。
谢谢!
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])
我有一个名为 intervals
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
并将它们存储到变量中。
它看起来像间隔类型但实际上不是,因为它是从 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 是从我过去得到的 364
时,仅重命名了 upper 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'])
因此,得到我前面提到的 intervals
数据框。所以,也许还有另一种方法可以提取大约 30 个范围,然后从这个间隔中获取最小值和最大值。
有人能帮忙吗?
- 我正在使用蒙特卡洛模拟来预测未来股票 价格,所以这就是为什么我需要这个间隔。如果您有兴趣,我们很乐意分享结果。
谢谢!
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])