如何让列表创建的Pandas DataFrame具备字典创建的DataFrame的功能?
列表创建Pandas DataFrame后无法筛选排序的修复方法
问题出在你用列表创建DataFrame时,把表头和数据混在同一个列表里传入,Pandas会默认将所有元素都当作数据行,列名自动设为0、1、2,导致你用Salary、Exp这类自定义列名操作时直接报错。
只需一行代码就能修复,拆分表头与数据部分即可:
import pandas as pd data = [['Salary', 'Exp', 'Gender'],[30000, 1, 'M'],[40000, 3, 'F'], [50000, 5, 'M'], [85000, 10, 'F'], [75000, 25, 'M']] # 拆分表头与数据,创建结构正确的DataFrame df = pd.DataFrame(data[1:], columns=data[0])
之后原有的筛选、排序代码就能正常运行:
# 筛选薪资≥50000的记录 new_df1 = df[df['Salary'] >= 50000] print(new_df1) # 按Exp字段降序排序 new_df2 = df.sort_values(['Exp'], axis=0, ascending=[False]) print(new_df2)
内容的提问来源于stack exchange,提问作者gerald
相关产品推荐
相关产品推荐

