Python 从“string1234”中剥离字符串

Python 从“string1234”中剥离字符串,python,string,numbers,strip,Python,String,Numbers,Strip,我是python新手,我想在我的数据挖掘研究中使用这种漂亮的语言。 我现在手头上有一个大数据文件,不幸的是,示例标识被定义为附加在数字上的字符串,如下所示: A、 B1、B2、B3、C1、C2、C3 0.2,0.456,0.7,1.01,0.91,0.11,0.31 为了构建一个有用的分类器,我需要将字母中的数字去掉,以便设置一个目标,即 集合['A'、'B'、'C'] 我首先需要做的是创建一个带有剥离标题的输出,这样新的csv文件应该是: A、 B,B,B,C,C,C 0.2,0.456,0.

我是python新手,我想在我的数据挖掘研究中使用这种漂亮的语言。 我现在手头上有一个大数据文件,不幸的是,示例标识被定义为附加在数字上的字符串,如下所示:

A、 B1、B2、B3、C1、C2、C3 0.2,0.456,0.7,1.01,0.91,0.11,0.31

为了构建一个有用的分类器,我需要将字母中的数字去掉,以便设置一个目标,即

集合['A'、'B'、'C']

我首先需要做的是创建一个带有剥离标题的输出,这样新的csv文件应该是:

A、 B,B,B,C,C,C 0.2,0.456,0.7,1.01,0.91,0.11,0.31

因为我拥有的文件非常庞大,我想从我的函数中浏览大数字列,并从数字中去掉它们的标题。可能代码的行为方式如下:

import numpy as np
import pandas as pnda
#from sklearn.linear_model import Ridge, Lasso
import string
import csv
import os

# Please don't pay attention to the first part of the code, it is just to load the file 

def get_file_path(filename):
    drkt = os.getcwd()
    file_path = os.path.join(drkt,filename)

    return file_path
    file_path = get_file_path('testing.csv')


def read_csv(file_path):
    data_file = open(file_path, 'rU')
    reader = csv.reader(data_file)
    headers_=reader.next()
print headers_ # Just to see the lines
这肯定是一个非常原始的代码,但我只想演示一下我遇到的问题。我基本上只想将strip0123456789=用于标题“行”,但我不知道如何达到这一点。我设法去除了标题,但我发现我的代码拉出并去除了整个列,这不是我想要的,我想去除每个csv日期文件中的第一行

请接受我的道歉,如果我的信息很长或如果我没有解释好我的观点


期待您的回复

我不完全理解您的要求,但您是否在寻找这样的功能

 def remove_numbers(l):
     #Create string to use for output
     output = "";
     #loop through the input string
     for x in l:
        #Test to see what characters are NOT digits
         if not x.isdigit():
            #If it isn't a digit add it to the output string
            output += x
    #Return the output string
    return output
此函数将字符串作为输入,并删除作为数字的字符。运行这个输入A,B1,B2,B3,C1,C2,C3可以得到这个输出'A,B,B,C,C,C'。我想您可以在进行其他处理之前运行此程序


编辑:正则表达式也可以用来实现这一目标

正如@whereswalden所建议的,您就快到了

import csv

def read_csv(file_path):
    data_file = open(file_path, 'rU')
    reader = csv.reader(data_file)
    headers_=reader.next()
    print headers_ # ['A', ' B1', ' B2', ' B3', ' C1', ' C2', ' C3']

    # Process headers outside of loop
    headers_ = [col.strip("0123456789=,") for col in headers_]
    print headers_ # ['A', ' B', ' B', ' B', ' C', ' C', ' C']

    for row in reader:
        # do what you want with the data rows

用正则表达式把它们剥离出来怎么样

这将从头中删除所有整数

import re
col = "A2"

re.sub(r"\d","",col)
输出

就你而言

headers_=reader.next()
headers_ = [re.sub(r"\d","",col) for col in headers_]
# do something with headers_

为什么不直接打电话给警察局?如果您在行中循环,请在循环之外处理标题。这段代码完美地完成了任务。非常感谢托尼,非常感谢。谢谢你,梅文,我感谢你花时间回复我的帖子。我发现上面Tony的答案非常简洁实用,它正是我想要的。非常感谢您花时间回复,非常感谢。我使用了Tony first的答案,它做得很漂亮。
headers_=reader.next()
headers_ = [re.sub(r"\d","",col) for col in headers_]
# do something with headers_