从字典构造pandas DataFrame并重命名列时得到空白数据框的问题咨询
问题原因
你代码中的columns = list('ABC')参数指定了DataFrame要保留的列名为A、B、C,但你传入的原始字典的键只有Name、Age、University,pandas找不到对应列的匹配数据,就会返回全为空值的空白数据框。
解决方法
如果你要在构造时把原有字典的三列重命名为A、B、C,可选用以下两种方案:
- 方案1:构造时直接修改字典键为目标列名,性能最优
import pandas as pd df = pd.DataFrame({ 'A' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'], 'B' : [23, 21, 22, 21], 'C' : ['BHU', 'JNU', 'DU', 'BHU'] })
- 方案2:先按原始字典构造表,再修改列名,适合需要保留原始键逻辑的场景
import pandas as pd # 不指定columns参数先构造完整DataFrame df = pd.DataFrame({ 'Name' : ['Ankit', 'Aishwarya', 'Shaurya', 'Shivangi'], 'Age' : [23, 21, 22, 21], 'University' : ['BHU', 'JNU', 'DU', 'BHU'] }) # 全量修改列名 df.columns = ['A', 'B', 'C'] # 若只需修改部分列,可使用rename方法 # df = df.rename(columns={'Name':'A', 'Age':'B', 'University':'C'})
内容的提问来源于stack exchange,提问作者SteveS
相关产品推荐
相关产品推荐

