我从一个xml
文件中提取了一些日期和温度值,并想用它们制作一个数据帧。所以在一些循环之后,我定义了变量temperature
和date
,并将它们的值附加到循环外的列表(placeholder
)。后来我用它们制作了一个数据帧,并在制作数据帧时直接指定了列名。但我重申,每次运行代码时,列名都会随机分配对错。
这是我的密码:
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
我在构建数据帧后分配列名时没有遇到这个问题:
df = pd.DataFrame(placeholder)
df=df.rename(columns= {0:"DATE",1:"TEMP"})
我怎样才能解决这个问题?你知道吗
DataFrame构造函数的
columns
参数应该是list
,而不是set
:相关问题 更多 >
编程相关推荐