首页 > 解决方案 > 数据中具有空列的数据框

问题描述

我有一个带有标题行的列表,然后是不同的值行。

在某些情况下,最后一个“列”对于所有行都有一个空值(如果只有一行有一个值,它可以正常工作),但 DataFrame 对此并不满意,因为列数与标题不同。

我正在考虑在创建 DF 之前将 None 值添加到第一个没有任何值的列表中,但我想知道是否有更好的方法来处理这种情况?

data = [
    ["data1", "data2", "data3"],
    ["value11", "value12"],
    ["value21", "value22"],
    ["value31", "value32"]]

headers = data.pop(0)
dataframe = pandas.DataFrame(data, columns = headers)

标签: pythonpandasdataframe

解决方案


你可以这样做:

import pandas as pd

data = [
    ["data1", "data2", "data3"],
    ["value11", "value12"],
    ["value21", "value22"],
    ["value31", "value32"]
]

# create dataframe 
df = pd.DataFrame(data)

# set new column names
# this will use ["data1", "data2", "data3"] as new columns, because they are in the first row
df.columns = df.iloc[0].tolist()

# now that you have the right column names, just jump the first line
df = df.iloc[1:].reset_index(drop=True)
df
     data1        data2    data3
0   value11      value12    None
1   value21      value22    None
2   value31      value32    None

这是你想要的吗?


推荐阅读