python处理Excel文件,将第四列“购买物品”中用“/”分隔的多个物品分成多行,使得每一行只有一个物品,前面的学号,姓名,手机保持原装
时间: 2024-09-08 16:01:51 浏览: 36
在Python中,我们可以使用pandas库方便地处理Excel文件。假设你有一个名为`data.xlsx`的Excel文件,其中包含三列数据(学号、姓名、手机号和购买物品),你可以按照以下步骤操作:
首先,安装必要的库(如果你还没有安装):
```bash
pip install pandas openpyxl
```
然后,编写一个脚本来读取并处理文件内容:
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel('data.xlsx')
# 假设"购买物品"这一列名是'PurchaseItems'
purchase_items_column = 'PurchaseItems'
# 使用split()函数将每个物品分开,并创建一个新的DataFrame,每行只有一个物品
processed_data = df.apply(lambda row: pd.DataFrame(row[purchase_items_column].split('/'), index=[row.name]).stack(), axis=1)
# 结果是一个长表,我们将它转换回宽表形式,每一行对应一个学生和一个单独的购买物品
processed_data = processed_data.reset_index().dropna(subset=['level_1'])[['学号', '姓名', '手机', 'level_1']].rename(columns={'level_1': '购买物品'})
# 写入新的Excel文件
new_df = pd.concat([df[['学号', '姓名', '手机']], processed_data], axis=1)
new_df.to_excel('processed_data.xlsx', index=False)
```
运行此脚本后,你会得到一个新的Excel文件`processed_data.xlsx`,其中第四列的内容已经被拆分为单独的行,每一行只有一项购买物品。
阅读全文