【发布时间】:2019-05-28 03:53:39
【问题描述】:
我是 python 编码的新手,想根据现有列的条件语句创建一个新列。
我使用python 2.7版本,在CentOs上运行代码。
import pandas as pd
file1 = pd.read_csv("/root/Documents/temp_file_{}.csv".format(timestr))
file1['FileName'] = ''
file1['FileName'] = file1['FileType'].apply(lambda x: df['Path'].str.extract('[^/]+$', expand=False) if x=='f' else '')
file1.to_csv('/root/Documents/temp1_file_{}.csv'.format(timestr),index = False)
以下是我的 CSV 文件:
FileType,Path
d,/
f,/documents/csv/.zip
d,/documents/images
d,/hive/28374849
f,/hadoop/jdjdjd/dnejfn.img
所需的 CSV 文件:
FileType,Path,FileName
d,/,
f,/documents/csv/.zip,.zip
d,/documents/images,
d,/hive/28374849,
f,/hadoop/jdjdjd/dnejfn.img,dnejfn.img
我想创建一个新列 FileName,仅当列 Filetype=='f' 时,该列中的数据才应从 Path 列中提取,否则该列中的数据应为空值或无数据
【问题讨论】:
标签: python pandas python-2.7