我是一名学生,我有一个问题,我不知道如何解决它。我有这样的csv数据:
"","","","","","","","","",""
"","report","","","","","","","",""
"","bla1","bla2","","","","bla3","","",""
"","bla4","bla5","","","","","bla6","",""
"","bla6","bla7","bla8","","1","2","3","4","5"
"","bla9","bla10","bla11","","6","7","8","9","10"
"","bla12","bla13","bla14","","11","12","13","14","15"
"","","","","","","","","",""读取csv的代码如下:
SMT = pd.read_csv(file.csv, usecols=(5,6,7,8), skiprows=(1,2,3), nrows=(3))
SMT.fillna(0, inplace=True)SMT打印输出:
Unnamed: 5 Unnamed: 6 Unnamed: 7 Unnamed: 8
0 1 2 3 4
1 6 7 8 9
2 11 12 13 14预期输出:
1 2 3 4
6 7 8 9
11 12 13 14我已经尝试过skiprows=(0,1,2,3)了,但它将是这样的:
1 2 3 4
0 6 7 8 9
1 11 12 13 14
2 0 0 0 0我已经尝试让index=Flase SMT = pd.read_csv(file.csv,index=False, usecols=(5,6,7,8), skiprows=(1,2,3), nrows=(3))或index_col=0/None/Falseis不工作了,上一次我是这样尝试的:
df1 = SMT.loc[:, ~SMT.columns.str.contains('^Unnamed')]我得到了
Empty DataFrame columns: [] Index: [0, 1, 2]
我只想摆脱无名的:5~无名的: 8,怎样才能正确摆脱这个无名的东西呢?
发布于 2020-02-28 04:05:09
“未命名”只是说,熊猫不知道如何命名列。所以这些只是名字。您可以在read_csv中像这样设置名称
pd.read_csv("test.csv", usecols=(5,6,7,8), skiprows=3, nrows=3, header=0, names=["c1", "c2", "c3", "c4"])输出:
c1 c2 c3 c4
0 1 2 3 4
1 6 7 8 9
2 11 12 13 14您必须设置header=0,以便pandas知道这通常是头文件。或者设置skiprows=4
发布于 2020-02-28 04:05:02
只需分配新的列名:
df = pd.read_csv('temp.csv', usecols=[5,6,7,8], skiprows=[1,2,3], nrows=3)
df.columns = range(1, 1+len(df.columns))https://stackoverflow.com/questions/60440882
复制相似问题