python - 丢失列名从列表转换回数据框

标签 python pandas

我创建了一个数据框,我需要执行两个操作:

  1. 转换为列表
  2. 将相同的列表转换回具有原始列名称的数据框。

问题:当我第一次转换为列表时,我丢失了列名称,当我转换回数据帧时,我没有得到这些列名称

请帮忙!

import pandas as pd
data = [['tom', 10], ['nick', 15], ['juli', 14]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])

#convert df to list
a=df.values.tolist()

#convert back to original dataframe
df1 = pd.DataFrame(a)
print(df1)

电流输出

Current output without column names

我无法获取列名称

最佳答案

您需要通过df.columns传递列名称,如果没有默认索引也需要传递它:

df1 = pd.DataFrame(a, columns=df.columns, index=df.index)

如果原始DataFrame中默认RangeIndex:

df1 = pd.DataFrame(a, columns=df.columns)

编辑:

如果需要一些类似的结构,请使用DataFrame.to_dict使用 orient='split'DataFrame 转换为列名、索引和数据的字典,例如:

data = [['tom', 10], ['nick', 15], ['juli', 14]]
df = pd.DataFrame(data, columns = ['Name', 'Age'])

d = df.to_dict(orient='split')
print (d)
{'index': [0, 1, 2],
 'columns': ['Name', 'Age'], 
 'data': [['tom', 10], ['nick', 15], ['juli', 14]]}

对于原始 DataFrame 的使用:

df2 = pd.DataFrame(d['data'], index=d['index'], columns=d['columns'])
print (df2)
   Name  Age
0   tom   10
1  nick   15
2  juli   14

关于python - 丢失列名从列表转换回数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68314774/

相关文章:

使用 isin 函数进行 pandas 过滤

python - 计算 pandas 列中条目的频率,然后使用 X 轴字符串标签将它们绘制成图

python - 将 python 脚本捆绑到 OS X 应用程序中,但是

Python:具有相同名称的类和函数

python - Pandas 数据框创建为 2 系列的排列?

Python Pandas : Merge or Filter DataFrame by Another. 有没有更好的方法?

python - 如何在 python 中对多个数据帧使用单个过滤器

python logging kwarg 在通过 args 部分时失败

python - sqlalchemy.exc.OperationalError : (sqlite3. OperationalError) 没有这样的列

python - 将 "nan"值转换为 numpy 矩阵中不同于 0 的不同值