def csvDf(dat,**kwargs):
from numpy import array
data = array(dat)
if data is None or len(data)==0 or len(data[0])==0:
return None
else:
return pd.DataFrame(data[1:,1:],index=data[1:,0],columns=data[0,1:],**kwargs)
我们来试试吧:
data = [['','a','b','c'],['row1','row1cola','row1colb','row1colc'],
['row2','row2cola','row2colb','row2colc'],['row3','row3cola','row3colb','row3colc']]
csvDf(data)
In [61]: csvDf(data)
Out[61]:
a b c
row1 row1cola row1colb row1colc
row2 row2cola row2colb row2colc
row3 row3cola row3colb row3colc
5 回答
添加到@ behzad.nouri的答案 - 我们可以创建一个帮助例程来处理这个常见场景:
我们来试试吧:
我同意Joris;看起来你应该这样做,就像numpy record arrays一样 . 从this great answer修改"option 2",您可以这样做:
这可以通过使用pandas DataFrame的from_records来完成
这是一个易于理解的解决方案
您需要指定
data
,index
和columns
到DataFrame构造函数,如下所示:edit :与@joris注释中一样,您可能需要将上面的内容更改为
np.int_(data[1:,1:])
才能拥有正确的数据类型 .