首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中根据条件从列中删除名称

在Python中根据条件从列中删除名称
EN

Stack Overflow用户
提问于 2018-07-03 01:55:58
回答 2查看 48关注 0票数 -1

以下是我的输入csv文件:

代码语言:javascript
复制
column1             column2

abc city town      efg town
abc town city      efg city
efg town           abc city town
efg city           abc town city

如果我的csv文件包含以下内容,我希望这样做:

1)城市只有在一行中存在时才应删除城市

2)镇只有在一行中存在时才会删除镇

3)城市镇如果存在,它应该只删除城镇

4)镇城市如果存在,应该只删除城市

我想要的输出应该如下所示:

代码语言:javascript
复制
column1             column2

abc city           efg 
abc town           efg 
efg                abc city 
efg                abc town 

我正在尝试使用Python来实现。这是我到目前为止尝试过的:

代码语言:javascript
复制
import pandas as pd
df = {"A": ['abc town', "abc city", 'abc town city', "abc city town"]}
for i in df['A']:
...     if i == 'town':
...             df['b'] == 'yes'
...             print (df)

如果行只包含城市或城镇,我就会被卡住,我必须删除它。我知道有一个概念包含了所有的,我可以在申请时使用它,但我不确定。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-03 10:32:05

这是我尝试过的简单的解决方案,

代码语言:javascript
复制
df['column1'] = df['column1'].str.replace(r'town$','')

df['column1'] = df['column1'].str.replace(r'city$','')

对于column2也是如此

代码语言:javascript
复制
df['column2'] = df['column2'].str.replace(r'town$','')

df['column2'] = df['column2'].str.replace(r'city$','')

输出将如下所示,

代码语言:javascript
复制
column1             column2

abc city           efg 
abc town           efg 
efg                abc city 
efg                abc town 
票数 0
EN

Stack Overflow用户

发布于 2018-07-03 03:11:06

这不使用Pandas模块。但我相信它能做你想要的。不过,完成这项任务的方法可能要短得多。

代码语言:javascript
复制
import csv

filename = 'file location and name'
with open(filename, 'r') as f:
    reader = csv.reader(f)
    data = list(reader)

list1 = []

for x in data:
    for i in x:
        if i.count(' ') > 1:
            i = ' '.join(i.split(' ', 2)[:2])
            list1.append(i)
        else:
            i = i.split(' ')[0]
            list1.append(i)
list2 = list1[::2]
list3 = list1[1::2]

zipped_list = zip(list2,list3)
headers = ['header1', 'header2']

with open("output.csv","w",newline="") as csv_save:
    cw = csv.writer(csv_save)
    cw.writerow(headers)
    cw.writerows(zipped_list)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51141436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档