这道题算是群答。如果同事或老板给你一堆这样的数据,你很可能会发疯。你应该如何处理它?仔细观察上面的数据,可以发现数据有以下两个主要特点:每行的数据长度不同。第一行和第三行有4个属性,第二行有5个属性。不同行的属性值没有对应排列。解题思路分析你可能会想,用Excel拆分就可以了。其实不可行,因为不同行的属性值没有对应排列。Excel分列的结果是:不同的属性存在于同一行。放弃Excel路径后,只能求助于Python。我们需要根据数据的特点选择合适的数据存储方式。最终问题转化为:构造数据源,然后创建DataFrame。然后根据我们数据的特点,我选择构造一个字典列表,并用它来创建一个DataFrame。观察我提供的案例和要解决的问题,差不多。我们也可以把上面的每一行数据变成一个由键值对组成的字典。然后最外层使用一个大列表来包含所有的字典。完整代码1)首先需要构造练习数据importpandasasspdx={"信息":["年龄:12;性别:女;身高:22;爱好:打球","年龄:12;描述:历史数据;性别:女;身高:22;爱好:打球","生日:2月3日;年龄:12;性别:女;爱好:打球"]}df=pd.DataFrame(x)df结果如下:2)构造一个由字典组成的列表tmps_list=[]fordataindf["information"].values:tmp_dict={}forkvindata.split(";"):k,v=kv.split(":")tmp_dict[k]=vtmps_list.append(tmp_dict)tmpsresult如下:3)创建DataFramedf=pd.DataFrame(tmps)df,结果如下:
