python – Pandas按行读取数据
发布时间:2020-12-20 11:08:10 所属栏目:Python 来源:网络整理
导读:通常,数据以列为变量的形式呈现,但是,例如,我在.txt文件中有类似的东西 Data1,1,2,3,4,5Data2,4 我可以使用pandas这样的方式构建数据框,就像我从中获得的一样 d = {"Data1":[1,5],"Data2": [3,2]}df = pd.DataFrame(data=d) 编辑: 最初我希望数据集的大小不
通常,数据以列为变量的形式呈现,但是,例如,我在.txt文件中有类似的东西
Data1,1,2,3,4,5 Data2,4 我可以使用pandas这样的方式构建数据框,就像我从中获得的一样 d = {"Data1":[1,5],"Data2": [3,2]} df = pd.DataFrame(data=d) 编辑: 解决方法
阅读文件,转置数据框,munge一点……etvoilà.
伪造文件的设置: >>> from io import StringIO >>> file = StringIO('''Data1,5 ...:Data2,4''') 创建数据框: >>> df = pd.read_csv(file,header=None).T >>> df = df.rename(columns=df.loc[0]).drop(0,axis=0) >>> >>> df >>> Data1 Data2 1 1 3 2 2 1 3 3 4 4 4 NaN 5 5 NaN 然而,Peter Leimbigler在this回答中做得更优雅一点! 正如ALollz指出的那样,这些解决方案仅在文件中没有包含比第一行更多字段的行时才有效. 这是我尝试更普遍适用的解决方案: >>> file = StringIO('''Data1,4 ...:Data2,5 ...:Data3,7,8''') >>> df = pd.concat([pd.Series(line.split(',')) for line in file],axis=1) >>> df.rename(columns=df.loc[0]).drop(0,axis=0).astype(float) >>> Data1 Data2 Data3 1 3.0 1.0 7.0 2 1.0 2.0 8.0 3 4.0 3.0 NaN 4 NaN 4.0 NaN 5 NaN 5.0 NaN (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |