python-3.x - Python:根据另一列上的数据在 csv 文件中创建新列和行
问题描述
我有一个 output.csv 文件,一个大型数据集,下面有类似的输出:
index, url
0, www.example1.com
1,
2,
3, www.example2.com
4, www.example3.com
我想添加一个新列,将邮件发送到 csv。我基本上是在 output.csv 的 column2 中抓取 url(在上面的示例中,第 1 行和第 2 行是空的,不存在 url)以提取 url 中存在的邮件。所以我需要的最终输出应该是
index, url, mail
0, www.example1.com, example1@gmail.com
1,
2,
3, www.example2.com, example2@yahoo.com
4, www.example3.com, example3@hotmail.com
有没有办法可以做到这一点?
解决方案
我知道这不是最好的方法,但您可以通过使用 pandas 库来帮助自己并创建如下内容:
import pandas as pd
df = pd.read_excel('output.xlsx')
def split_value(i):
if type(i) == str:
url = i.split('.')[1]+"@some_domaine"
else:
url = np.nan
return url
df['mail'] = [split_value(i) for i in df.url.values]
df
**Out[1]:**
index url mail
0 www.example1.com example1@some_domaine
1 NaN NaN
2 NaN NaN
3 www.example2.com example2@some_domaine
4 www.example3.com example3@some_domaine
df.to_excel(onemoreoutput.xlsx)
推荐阅读
- c# - 删除 PDF 中的行间距
- ios - 如何在TableView swift中自定义tableViewCell之间的线条
- java - 用于字符串的 Java 桶排序程序
- python - pip install selenium ERROR python 3.7 Windows 10
- wpa-supplicant - NetworkManager 的 wpa_supplicant.conf 配置
- oracle-sqldeveloper - sqldeveloper 中的 sysdate 不正确
- c# - 向我的 Azure 服务总线队列添加消息不会返回任何值
- testing - 测试后清理数据
- java - 正在写入时无法从服务器读取
- javascript - 减少 Bootstrap 4 Card Z-index 小于 table thead