如何从dataframe中一列含有字母和数组的值中提取其中的数字

date例子:

Price: 2450.000000, C: 618.000000, P: 0.500000, Diff: 617.500000, YSettle_C: 618.000000, YSettle_P: 0.500000
Price: 2500.000000, C: 568.000000, P: 0.500000, Diff: 567.500000, YSettle_C: 568.000000, YSettle_P: 0.500000
Price: 2550.000000, C: 518.500000, P: 1.000000, Diff: 517.500000, YSettle_C: 518.500000, YSettle_P: 1.000000
Price: 2600.000000, C: 469.500000, P: 2.000000, Diff: 467.500000, YSettle_C: 469.500000, YSettle_P: 2.000000
Price: 2650.000000, C: 421.500000, P: 3.500000, Diff: 418.000000, YSettle_C: 421.500000, YSettle_P: 3.500000

将以上数据保存为TXT文件在D盘,并命名为d.txt

import pandas as pd
import numpy as np
df_news = pd.read_table('D:\\d.txt',header = None)

使用以上代码读取该文件,然后使用下一句代码读取该文件的格式:

print (type(df_news))

输出结果为:

<class 'pandas.core.frame.dataframe'></class>

可以看到是一个dataframe类型的文件。

工作需求是想读取每一行的price后面的数字,作为K;C后面的数字,作为C;P后面的数字,作为P。

但是由于读取出来的dataframe是一个5*1的数组,并且该数组没有列标签。

实现方法如下:

k=[]
c=[]
p=[]

for i in df_news[0]:
    k.append(i[7:11])
    c.append(i[23:30])   #&#x53D6;&#x7684;&#x662F;&#x6BCF;&#x4E00;&#x884C;&#x4E2D;[x:y]&#x7684;&#x503C;
    p.append(i[37:45])
r=pd.DataFrame()
r['k']=k
r['c']=c
r['p']=p
r=r.astype('float')

然后print即可输出list形式的数组,然后再进行进一步的运算即可。

补充一些解决这个问题走过的弯路:

Original: https://blog.csdn.net/amuyiweiyang/article/details/117559415
Author: amuyiweiyang
Title: 如何从dataframe中一列含有字母和数组的值中提取其中的数字

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/738442/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球