简体   繁体   English

Python:加载CSV,第一列作为行名,第一行作为列名

[英]Python: Load CSV, first column as row names, first row as column names

I want to load a CSV file using Python2.7, in which the first row contains column names and the first column contains row names. 我想使用Python2.7加载CSV文件,其中第一行包含列名,第一列包含行名。

My CSV file looks like beneath. 我的CSV文件如下所示。

  A  B  C  D
a 1. 2. 3. 4. 
b 5. 6. 7. 8. 

I don't know how to do that with numpy or pandas. 我不知道如何用numpy或pandas来做。 Can someone enlighten me ? 有人可以启发我吗? Thanks ! 谢谢 !

You can use read_csv with separator s\\+ - arbitrary whitespace: 您可以将read_csv与分隔符s\\+ -任意空格一起使用:

import pandas as pd
import io

temp=u"""A B C D
a 1. 2. 3. 4.
b 5. 6. 7. 8."""
#after testing replace io.StringIO(temp) to filename
df = pd.read_csv(io.StringIO(temp), sep="\s+")
print df
     A    B    C    D
a  1.0  2.0  3.0  4.0
b  5.0  6.0  7.0  8.0

Docs 文件

You could use pd.read_csv with regex separator \\s+ : 您可以将pd.read_csv与正则表达式分隔符\\s+

import pandas as pd

In [4]: pd.read_csv('file.csv', sep='\s+')
Out[4]:
     A    B    C    D
a  1.0  2.0  3.0  4.0
b  5.0  6.0  7.0  8.0

Or you could use delim_whitespace argument for that: 或者您可以delim_whitespace使用delim_whitespace参数:

In [5]: pd.read_csv('file.csv', delim_whitespace=True)
Out[5]:
     A    B    C    D
a  1.0  2.0  3.0  4.0
b  5.0  6.0  7.0  8.0

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM