Python打开有数据的excel在第一行插入列名,把日期时间一列中按空格拆分成两列,把日期一列中数字转变为日期格式,把时间一列提取小时到新的一列,最后把表转变为枢纽表
时间: 2023-05-25 19:06:10 浏览: 180
可以使用pandas库来处理Excel文件的操作,具体步骤如下:
1. 导入pandas库并读取Excel文件
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel("data.xlsx")
```
2. 插入列名
```python
# 列名列表
column_names = ["日期", "时间", "数值"]
# 插入列名
df.columns = column_names
```
3. 拆分日期时间一列
```python
# 把日期时间一列按空格拆分成两列
df[["日期", "时间"]] = df["日期时间"].str.split(" ", expand=True)
# 删除原始的日期时间一列
df.drop("日期时间", axis=1, inplace=True)
```
4. 数字转为日期格式
```python
# 把日期一列中数字转变为日期格式
df["日期"] = pd.to_datetime(df["日期"], format="%Y%m%d")
```
5. 提取小时到新的一列
```python
# 把时间一列提取小时到新的一列
df["小时"] = df["时间"].str.split(":").str[0]
```
6. 转变为枢纽表
```python
# 转为枢纽表
df_pivot = pd.pivot_table(df, values="数值", index=["日期", "小时"], columns=["项"])
```
完整代码:
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel("data.xlsx")
# 列名列表
column_names = ["日期", "时间", "数值"]
# 插入列名
df.columns = column_names
# 把日期时间一列按空格拆分成两列
df[["日期", "时间"]] = df["日期时间"].str.split(" ", expand=True)
# 删除原始的日期时间一列
df.drop("日期时间", axis=1, inplace=True)
# 把日期一列中数字转变为日期格式
df["日期"] = pd.to_datetime(df["日期"], format="%Y%m%d")
# 把时间一列提取小时到新的一列
df["小时"] = df["时间"].str.split(":").str[0]
# 转为枢纽表
df_pivot = pd.pivot_table(df, values="数值", index=["日期", "小时"], columns=["项"])
```
注意事项:
1. Excel文件必须存在,读取文件路径需要根据实际路径修改。
2. 列名列表需要根据实际数据做出调整。
3. 时间一列拆分时,需要先判断日期时间一列中是否存在空格,否则会报错。
4. 最后得到的枢纽表需要根据实际数据做出调整。
阅读全文