我有一个csv文件,有6901行x42列。这个文件的39列是一个数据矩阵,我想对它进行一些分析。我不知道如何从Panda中提取这些数据作为一个不需要索引的矩阵,并将其视为一个数字矩阵。
df1=pd.read_csv(fileName, sep='\t',lineterminator='\r', engine='python', header='infer')
df1.info()
<Protein.ID的绑定方法DataFrame.info。。。比率H.L.33
0 A0A024QZP7;P06493;P06493-2;E5RIU6;A0A087WZZ9 ... 47.88100
1 A0A024QZX5;A0A087X1N8;P35237 ... 0.13615
2 A0A024R0T9;K7ER74;P02655;Q6P163;V9GYJ8 ... NaN
3 A0A024R4E5;Q00341;Q00341-2;H0Y394;H7C0A4;C9J5E... ... 5.97650
4 A0A087WZA9;A0A024R4K9;A0A087X266;Q9BXJ8-2;Q9BXJ8 ... NaN
... ... ...
6896 V9GYT7 ... NaN
6897 V9GZ54 ... NaN
6898 X5CMH5;A0A140T9S0;A0A0G2JLV0;A0A087WYD6;E7ENX8... ... NaN
6899 X6RAL5;H7BZW6;U3KPY7 ... NaN
6900 X6RJP6 ... NaN
[6901 rows x 42 columns] >
然后我想把第4列到第42列作为计算的正规矩阵。有人知道怎么做吗?
您可以使用将DataFrame转换为numpy ndarray
df1.values
或
df1.to_numpy()
如果只想提取特定列:
cols = ['A', 'B', 'C']
df1[cols].to_numpy()
panda为您提供所需的一切。:(您不需要将其转换为numpy数组。通过这种方式,您将从Panda DataFrames中保留一些方便的方法:(
您有一个.csv文件,意思是";逗号分隔的值"-这是有历史原因的,但现在这些值用不同的符号分隔,或者用熊猫的术语用不同的分隔符,短sep分隔。例如逗号、分号、制表符。
您的数据显示用分号分隔,因此应该使用sep=';'在您的pd.read_csv命令中。
正如我所理解的,你想忽略前3列。所以您只需设置pd.read_csv
变量usecols
(=使用列(
usecols=范围(4,43(
usecols希望你准确地告诉他你想要使用的栏目。你可以给他一个从4到43的范围,或者你可以通过一个列表
a=[4,5,6,7,…,42]
显然,只有当您想要定义特定的列时,这才是方便的。python函数范围为您完成了这项混乱的工作。
因此,您的命令应该如下所示:df1=pd.read_csv(fileName, sep=';',lineterminator='\r', engine='python', header='infer',usecols=range(4,43))
向致以最良好的问候