1.承接上一篇博文,上文提到append()函数中的参数ignore_index=True,如果加上该参数,是a.append(b,ignore_index=True),数据不支持的情况下会报错“TypeError: append() takes no keyword arguments”。
2.为了解决这个错误,要把该参数去掉,即a.append(b),但是返回的结果很乱,无法直接做数据分析,就像这样:
3。为了就解决这个问题需要将结果转化为数据框,因为append()之后保存的数据属于列表形式(list),此时需要将list转化为DataFrame。
pd.DataFrame(a)
结果报错,

大概意思是:a中的数据不是2维的,不可以直接转化为DataFrame。
4.后来,我想间接行事,先将list转化为数组(array),再转化为DataFrame。
np.array(a)

结果是这样,是不是顺眼多了。
有个tip需要注意, print(np.array(a))跟直接输出np.array(a)是不一样的,但是只是表现形式不同,格式什么都还是相同的。对比一下,是不是没有逗号了。

5.好,接下来,继续解决数据形式转化问题,转化数组之后在转化成DataFrame。
pd.DataFrame(np.array(a))
结果依然报错:ValueError: Must pass 2-d input. shape=(5, 1, 10)
好,再来反思,为什么?DataFrame只能接受2维数组,报错提示也提示了我们是3维的数据(5,1,10),现在来思考怎么将3维数据转化成2维的。
6.利用reshape函数。
np.reshape(a,(5,10))

好,已经成功转化为2维数组,reshape()函数中的参数(行,列)按照自己的需要的来,我需要的是(5行10列的数据框)
7.运行成功
pd.DataFrame(np.array(a),columns=['ST', 'AGEP', 'COW', 'ENG', 'MAR', 'SEX', 'ESR', 'WAGP', '# SCHL', 'class'])
本文详细介绍了在使用Pandas进行数据处理时遇到的问题,如append操作的参数错误,以及如何将列表转为DataFrame。通过实例展示了在数据维度不匹配时,如何利用reshape函数解决转化问题,最终成功将3维数据转化为2维并创建了DataFrame。过程中强调了数据格式转换在数据分析中的重要性。
3364

被折叠的 条评论
为什么被折叠?



