Python把excel中一列数据按单元格内容中的空格拆分成两列
时间: 2023-05-26 21:03:39 浏览: 328
可以使用Python中的pandas库来读取excel文件,并将一列数据按单元格内容中的空格拆分成两列,具体实现如下:
```python
import pandas as pd
# 读取excel文件
df = pd.read_excel('data.xlsx')
# 将一列数据按单元格内容中的空格拆分成两列
df[['列名1', '列名2']] = df['需要拆分的列名'].str.split(' ', expand=True)
# 输出拆分后的数据
print(df)
```
其中,`data.xlsx`是需要处理的excel文件名,`需要拆分的列名`是需要将其拆分的列的列名,在拆分后生成两列的新列名可以根据需要自行指定。`expand=True`参数表示将每个单元格拆分成多个数据并存储到不同的列中。
相关问题
Python打开有数据的excel把一列数据按逗号,和空格拆分
可以使用openpyxl库读取Excel文件,然后使用字符串的split()方法以逗号和空格为分隔符拆分数据。以下是示例代码:
``` python
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('data.xlsx')
# 选择工作表
sheet = wb.active
# 选择需要拆分的列,这里假设是第一列
column = sheet['A']
# 遍历每个单元格
for cell in column:
# 获取单元格中的文本
text = cell.value
if text: # 如果单元格不为空
# 使用逗号和空格拆分文本
items = text.split(', ')
# 在单元格中写入拆分后的数据,中间用换行符分隔
cell.value = '\n'.join(items)
# 保存修改后的Excel文件
wb.save('output.xlsx')
```
这个代码会打开名为"data.xlsx"的Excel文件,将第一个工作表中的第一列数据按逗号和空格拆分,并在原单元格中用换行符分隔拆分后的数据。最后将修改后的数据保存到"output.xlsx"文件中。
如何用python代码优雅地实现以下功能,从Excel读取数据并去掉所有单元格中的空格,批量入mysql数据库 其中Excel的标题为acc_key,issuance_date,issuance_number,tracking_number,logistics_company_name,Excel的名称为shippment.XLS,Excel的路劲在当前目录下,mysql数据库的库为py,表名:logistics_trajectory,数据库对应的表字段名跟Excel一样,也是acc_key,issuance_date,issuance_number,tracking_number,logistics_company_name,IP:192.168.0.126,账号:root 密码:quc@2022@din Excel中的数据做以下特殊处理 如果tracking_number列中如果哪个单元格有/,则tracking_number列以/拆分成多行数据,记住要把/去掉,拆分的多行数据中,别的字段的值都一样就行
可以使用Python中的pandas和mysql-connector库来实现此功能,具体代码如下:
```python
import pandas as pd
import mysql.connector
# 读取Excel文件,去掉单元格中的空格
df = pd.read_excel('shippment.XLS')
df = df.applymap(lambda x: x.strip() if type(x) == str else x)
# 处理tracking_number列,拆分成多行数据
s = df['tracking_number'].str.split('/', expand=True).stack()
s.index = s.index.droplevel(-1)
s.name = 'tracking_number'
df = df.drop('tracking_number', axis=1).join(s)
# 连接mysql数据库
cnx = mysql.connector.connect(user='root', password='quc@2022@din',
host='192.168.0.126', database='py')
cursor = cnx.cursor()
# 批量插入数据到数据库
for row in df.itertuples():
query = f"INSERT INTO logistics_trajectory (acc_key, issuance_date, issuance_number, tracking_number, logistics_company_name) VALUES ('{row.acc_key}', '{row.issuance_date}', '{row.issuance_number}', '{row.tracking_number}', '{row.logistics_company_name}')"
cursor.execute(query)
cnx.commit() # 提交事务
cursor.close() # 关闭游标
cnx.close() # 关闭数据库连接
```
注意,这段代码只是提供了一个思路,具体实现时需要根据实际情况进行修改。另外,在处理Excel和数据库操作时,需要考虑异常情况的处理,例如文件不存在、数据库连接失败等。
阅读全文
相关推荐














