我有一个.tsv文件
Frequencies Intensities
-350.51 13.7712
54.8965 0.298093
63.7786 8.16809
134.198 1.66818
144.028 2.19037
148.808 1.13914
167.588 7.58799
185.603 4.63792
206.212 1.04249
229.086 6.38628
239.265 7.7888
277.323 8.31206
298.328 18.5049
593.467 0.100776
642.199 0.0708063
685.177 0.570148
730.67 11.1965
732.848 2.5357
830.964 22.6193
856.667 4.94958
1043.11 5.80368
1134.92 13.664
1306.82 31.9118
1331.34 58.0725
1518.05 89.9757
1702.15 100
3800.18 11.8662
我想从第二行到最后一行读取第一列,并使用数字获得这样的数组
w112161617 = np.array([
54.8965,
63.7786,
134.198,
144.028,
148.808,
167.588,
185.603,
206.212,
229.086,
239.265,
277.323,
298.328,
593.467,
642.199,
685.177,
730.67,
732.848,
830.964,
856.667,
1043.11,
1134.92,
1306.82,
1331.34,
1518.05,
1702.15,
3800.18
])
请告知操作方法。
我试图这样做
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
b = '/Users/chirantan/Desktop/12161617b.tsv'
b_data=pd.read_table(b)
b_data.head()
它将像这样打印整个tsv文件
Frequencies Intensities
0 -350.5080 13.798800
1 54.9287 0.299525
2 63.7058 8.166240
3 134.1750 1.668960
4 144.0070 2.191290
,但它也仅打印第6行。
我需要第一列的所有行,但负数(第二行)和标题(第一行)除外。
我该如何解决问题?
答案 0 :(得分:0)
b_data['Frequencies']
将带您进入第一栏。
b_data[b_data['Frequencies'] >= 0]
会得到所有没有负数的数据框。
b_data[b_data['Frequencies'] >= 0]['Frequencies']
将使您获得第一列的所有内容而没有负数。
答案 1 :(得分:0)
read_table
已成为deprecated。请改用read_csv
:
df = pd.read_csv('/Users/chirantan/Desktop/12161617b.tsv', sep='\\t', engine='python')
frequencies = df.loc[df['Frequencies'] >= 0, 'Frequencies'].values