如何用三个单独数值构建单行DataFrame?两种尝试均失败
解决单个数值构建DataFrame的问题
嘿,我来帮你搞定这个用三个单独数值构建DataFrame的小难题!先看看你之前的方法为啥行不通,再给你几个靠谱的解决方案~
你的方法问题分析
- 方法一的问题:
pd.DataFrame([a,b,c], columns=list('abc'))里的[a,b,c]是一维列表,pandas会把它当成一行数据但只有1个元素,可你指定了3列,自然就会报尺寸不匹配的错误啦。 - 方法二的问题:空的DataFrame没有任何行索引,直接给列赋值单个数值的话,pandas找不到对应的行来存放这个值,所以没法成功添加。
正确的实现方法
这里有几种简单有效的方式,都能帮你生成想要的DataFrame:
方法1:传入二维列表(推荐直观款)
把三个数值放在一个子列表里,组成二维结构,这样pandas就能识别出这是一行3列的数据:
import pandas as pd a = 1 b = 2 c = 3 dat = pd.DataFrame([[a, b, c]], columns=['a', 'b', 'c'])
方法2:用字典构建(灵活易读款)
以列名为键,每个键对应一个包含单个数值的列表,pandas会自动帮你生成一行数据:
dat = pd.DataFrame({'a': [a], 'b': [b], 'c': [c]})
方法3:Series转DataFrame(简洁款)
先把数值做成Series,再转成DataFrame并转置成行:
dat = pd.Series({'a': a, 'b': b, 'c': c}).to_frame().T
这几种方法生成的结果都是你想要的:包含列名a、b、c,各列对应数值1、2、3的DataFrame,之后就可以正常追加到现有结果里啦~
内容的提问来源于stack exchange,提问作者EHB
相关产品推荐
相关产品推荐

