Python将csv文件中一行分割成多行

 原始数据

Python将csv文件中一行分割成多行_第1张图片

目标

按照 "/" 和 "." 分割url,将url中单个字符等提取出来,每个字符单独占一行,Label属性和分割前保持一致

代码

import pandas as pd
# 读取文件中所有数据
data = pd.read_csv("./kaggle/input/phishing-site-urls/phishing_site_urls.csv", encoding='latin-1')
# 按照 / 分割列
data_url = data['URL'].str.split('/', expand=True)
# 行转列
data_url = data_url.stack()
# 重置索引,将新生成的index,重置到原来的索引上
data_url = data_url.reset_index(level=1, drop=True).rename('URL')
# 和原始数据合并
data = data.drop(['URL'], axis=1).join(data_url)
# 按照 . 分割列
data_url = data['URL'].str.split('.', expand=True)
# 行转列
data_url = data_url.stack()
# 重置索引,将新生成的index,重置到原来的索引上
data_url = data_url.reset_index(level=1, drop=True).rename('URL')
# 和原始数据合并
data = data.drop(['URL'], axis=1).join(data_url)
# 写入csv文件
data.to_csv(r'./kaggle/input/phishing-site-urls/phishing_site_urls_01.csv', sep=",", index=False)
# 去除其中空值的数据
data = pd.read_csv("./kaggle/input/phishing-site-urls/phishing_site_urls_01.csv", encoding='latin-1')
data.dropna(how='any', inplace=True, axis=0, subset=['URL'])
data.to_csv(r'./kaggle/input/phishing-site-urls/phishing_site_urls_01.csv', sep=",", index=False)

结果

Python将csv文件中一行分割成多行_第2张图片

你可能感兴趣的:(python)