在python中将列表错误地转换为数据框[重复]

Posted

技术标签:

【中文标题】在python中将列表错误地转换为数据框[重复]【英文标题】:Incorrect conversion of list into dataframe in python [duplicate] 【发布时间】:2018-11-26 23:42:26 【问题描述】:

我正在尝试使用 python 将列表转换为数据框。 我的列表中有所有必要的数据(正确的数据),以字典列表的形式。请参阅下面的字典列表:

 ['ABC': 'abc1', 'DEF': 'def1', 'GHI': 'ghi1', 'JKL': 'jkl1', 'MNO': 'mno1', 'PQR': 'pqr1', 'STU': 'stu1', 'VWX': 'vwx1', 'YZ': 'yz1',
 'ABC': 'abc2', 'DEF': 'def2', 'GHI': 'ghi2', 'JKL': 'jkl2', 'MNO': 'mno2', 'PQR': 'pqr2', 'STU': 'stu2', 'VWX': 'vwx2', 'YZ': 'yz2',......

我正在使用以下命令将其转换为数据框。

newdf = pd.DataFrame.from_dict(case_list_new)

数据框没有将字典键作为列标题,而是将数字 0-8 作为列标题,并在字典值应该在的循环中打印列名。这是我得到的数据框输出:

     0   1    2   3   4   5   6   7   8  
0   ABC DEF  GHI JKL MNO PQR STU VWX YZ
1   ABC DEF  GHI JKL MNO PQR STU VWX YZ

此输出的原因可能是什么,我该如何正确处理? 任何帮助将不胜感激。

【问题讨论】:

这应该有效。尝试pd.DataFrame.from_dict(data, orient='columns') 对我有用吗? 嗨@coldspeed,试过了,还是一样的输出:( 那么你的实际数据有一些你没有在这里显示的东西。请提供minimal reproducible example 并确保数据重现您的问题。 @learner,你能试试只用DataFrame构造函数吗? 这对我和@Nihal 先生都有效。请分享您的源代码。 【参考方案1】:
df = ['ABC': 'abc1', 'DEF': 'def1', 'GHI': 'ghi1', 'JKL': 'jkl1', 'MNO': 'mno1', 'PQR': 'pqr1', 'STU': 'stu1',
   'VWX': 'vwx1', 'YZ': 'yz1',
  'ABC': 'abc2', 'DEF': 'def2', 'GHI': 'ghi2', 'JKL': 'jkl2', 'MNO': 'mno2', 'PQR': 'pqr2', 'STU': 'stu2',
   'VWX': 'vwx2', 'YZ': 'yz2']

newdf1 = pd.DataFrame(df)
newdf2 = pd.DataFrame.from_dict(df)
print(newdf1)
print(newdf2)

输出:

    ABC   DEF   GHI   JKL   MNO   PQR   STU   VWX   YZ
0  abc1  def1  ghi1  jkl1  mno1  pqr1  stu1  vwx1  yz1
1  abc2  def2  ghi2  jkl2  mno2  pqr2  stu2  vwx2  yz2

    ABC   DEF   GHI   JKL   MNO   PQR   STU   VWX   YZ
0  abc1  def1  ghi1  jkl1  mno1  pqr1  stu1  vwx1  yz1
1  abc2  def2  ghi2  jkl2  mno2  pqr2  stu2  vwx2  yz2

【讨论】:

以上是关于在python中将列表错误地转换为数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在python中将列转换为行[重复]

在python中将Dataframe列转换为时间格式

在具有混合数据类型的数据框中将所有出现的真/假转换为 1/0 [重复]

无法在python数据框中将列类型从对象转换为str

Python:在数据框列中将秒转换为日期时间格式

在python中将列表转换为字符串[重复]