熊猫随机分配列名

时间:2019-12-05 09:46:25

标签: python pandas dataframe

我从xml文件中提取了一些日期和温度值,并希望从中获取数据框。因此,在某些循环之后,我定义了变量temperaturedate并将其值附加到循环外的列表(placeholder)中。后来,我从它们那里制作了一个DataFrame,并在制作数据框时直接分配了列名。但是我认为,每次我运行代码时,都会随机分配对或错列名称。 这是我的代码:

placeholder=[]
for timeserie in timeseries:
    date = re.findall('<entryisIntraday\D*(\d*.\d*.\d*)', timeserie)
    temperature = re.findall('<value>(.*)<\/value>', timeserie)[0]
    placeholder.append([date, temperature])
print(placeholder)
df = pd.DataFrame(placeholder, columns= {"DATE", "TEMP"})
print(df)

运行代码后,有时结果如下:

[['2019-10-29', '4.4'], ['2019-10-30', '3.6'], ['2019-10-31', '2.1'] ...
          TEMP                DATE
0   2019-10-29                 4.4
1   2019-10-30                 3.6
2   2019-10-31                 2.1

有时是这样的:

[['2019-10-29', '4.4'], ['2019-10-30', '3.6'], ['2019-10-31', '2.1'], ...
          DATE                TEMP
0   2019-10-29                 4.4
1   2019-10-30                 3.6
2   2019-10-31                 2.1

在构建DataFrame之后分配列名时,我没有这个问题:

df = pd.DataFrame(placeholder)
df=df.rename(columns= {0:"DATE",1:"TEMP"})

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

DataFrame构造函数的columns参数应该是list,而不是set

df = pd.DataFrame(placeholder, columns = ["DATE", "TEMP"])