用熊猫加载CSV,列错误

时间:2020-03-30 13:50:50

标签: pandas csv format

我用熊猫将csv加载到了DataFrame中。

格式如下:

Timestamp | 1014.temperature | 1014.humidity | 1015.temperature | 1015.humidity ....
-------------------------------------------------------------------------------------
2017-...  | 23.12            | 12.2          |  25.10           | 10.34         .....

问题在于,“ 1014”或“ 1015”数字应该是应该在特殊列中的ID。

我想以DF的以下格式结尾:

TimeStamp | ID       | Temperature | Humidity
-----------------------------------------------
.         |          |             |
.
.
.

CSV被制表符分隔。

谢谢大家!

1 个答案:

答案 0 :(得分:0)

import pandas as pd
from io import StringIO
# create sample data frame
s = """Timestamp|1014.temperature|1014.humidity|1015.temperature|1015.humidity
2017|23.12|12.2|25.10|10.34"""

df = pd.read_csv(StringIO(s), sep='|')
df = df.set_index('Timestamp')

# split columns on '.' with list comprehension
l = [col.split('.') for col in df.columns]
# create multi index columns
df.columns = pd.MultiIndex.from_tuples(l)
# stack column level 0, reset the index and rename level_1
final = df.stack(0).reset_index().rename(columns={'level_1': 'ID'})

   Timestamp    ID  humidity  temperature
0       2017  1014     12.20        23.12
1       2017  1015     10.34        25.10