如何使用pandas提取数据矩阵?

2024-05-14 00:18:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,6901行x 42列。这个文件的39列是我想做一些分析的数据矩阵。我不知道如何从熊猫身上提取这些数据作为一个不需要索引的矩阵,并将其视为一个数值矩阵

df1=pd.read_csv(fileName, sep='\\t',lineterminator='\\r', engine='python', header='infer')
df1.info()

<;Protein.IDs的绑定方法DataFrame.info。。。比率1.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列作为计算的标准矩阵。有人知道怎么做吗


Tags: 文件csv数据inforead矩阵nanfilename
2条回答

熊猫为您提供所需的一切。:) 您不需要将其转换为numpy数组。这样,您就可以从pandas DataFrames中保留一些方便的方法:)

您有一个表示“逗号分隔值”的.csv文件,这是有历史原因的,但现在这些值用不同的符号分隔,或用不同的分隔符分隔。例如逗号、分号、制表符

您的数据显示分号分隔,因此您应该使用sep=';'在pd.read\u csv命令中

正如我所理解的,您希望忽略前3列。因此,您只需设置pd.read\u 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))

致意

您可以使用以下命令将数据帧转换为numpy数据数组

df1.values

df1.to_numpy()

如果要仅提取特定列,请执行以下操作:

cols = ['A', 'B', 'C']
df1[cols].to_numpy()

相关问题 更多 >