python3 pandas
用字典创建数据框时报错ValueError: If using all scalar values, you must pass an index

if __name__ == '__main__':
    import pandas as pd
    data = {'name': 'Wang', 'age': 15, 'sex': 'male'}
    df = pd.DataFrame(data)

在这里插入图片描述

报错原因:

直接传入标称属性为value的字典需要写入index,即需要在创建DataFrame对象时设定index

解决方案:

方法1、创建DataFrame时,设置Index

if __name__ == '__main__':
    import pandas as pd
    data = {'name': 'Wang', 'age': 15, 'sex': 'male'}
    df = pd.DataFrame(data, index=[0])
    print(df)

在这里插入图片描述

方法2、通过from_dict函数将value为标称变量的字典转换为DataFrame对象

if __name__ == '__main__':
    import pandas as pd
    data = {'name': 'Wang', 'age': 15, 'sex': 'male'}
    df = pd.DataFrame.from_dict(data, orient='index').T
    print(df)

在这里插入图片描述
方法3、输入字典时,不要让value为标称属性,把value转换为list对象再传入

if __name__ == '__main__':
    import pandas as pd
    data = {'name': ['Wang'], 'age':[ 15], 'sex': ['male']}
    df = pd.DataFrame(data)
    print(df)

在这里插入图片描述
方法4、将key和value取出来,转换为list对象

if __name__ == '__main__':
    import pandas as pd
    data = {'name': 'Wang', 'age': 15, 'sex': 'male'}
    df = pd.DataFrame(list(data.items()))
    print(df)

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐