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

时间:2016-05-06 05:41:04

标签: python python-2.7 csv numpy pandas

我想使用Python2.7加载CSV文件,其中第一行包含列名,第一列包含行名。

我的CSV文件看起来像在下面。

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

我不知道如何用numpy或pandas做到这一点。有人可以开导我吗?谢谢!

2 个答案:

答案 0 :(得分:3)

您可以将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

答案 1 :(得分:3)

您可以将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

或者您可以使用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