相关文章推荐
纯真的围巾  ·  python ...·  4 天前    · 
文武双全的跑步鞋  ·  Python ...·  12 小时前    · 
追风的牛肉面  ·  TypeError: descriptor ...·  3 周前    · 
安静的豆浆  ·  【bug】【Cannot find ...·  11 月前    · 
瘦瘦的柚子  ·  c++ convert file to ...·  1 年前    · 
for csv_name in csv_path:
    df = pd.read_csv(csv_name, encoding='gbk')
    df.head()
    col_names = df.columns.tolist() # 获取列名字
    # 把列名中的空格去掉
    for index,value in enumerate(col_names):
        col_names[index]= value.replace(" ","")
    col_names
    # 修改列名字
    df.columns=col_names 
    df.to_csv(csv_name, encoding='gbk')
                                    在数据预处理时,因为人工采集数据的过程,经常有可能把空值和空格混在一起,一般也注意不到在本来为空的单元格里加入了空格。这就给做数据处理的人带来了麻烦,因为空值和空格都是代表的无数据,而pandasSeries的方法notnull()会把有空格的数据也纳入进来。一般这种情况采用的做法是,先将空格用NaN值替换,再进行空值填充。
源数据形式如下:
再看一下数据的行数及数据格式:
可以看到,对于data["call_result2"]这一列数据是有缺失的,我们先用nan值将空格处理了,再进行空值处
                                    在使用pandas处理数据时,会遇到这样一个问题:打开文档查看某些列明显有很多是空的,但是在python里用dataframe.info统计出来并不是空的,这是因为excel表里这些数据看起来是空的值,但其实是一个空格,但是用isnull判断是为False的。
解决方案:
对整张表dataframe替换空格为np.nan,可以使用replace方法通过正则匹配空格,然后替换:
一、先创建一张数据表
import pandas as pd
a = pd.DataFrame([['1qw','   2e   rt   ','3uio'],['6qw   ','7ert','  8u    io']],columns=list('ABC'))
print(a)
表格生成如下:
从表格只能看到字符串间的空格,两侧的空格无法判断是否存在,因此我们可以用代码 print(a.values )来查看单元格具
                                    去除pandas的单双引号,空格
前段时间,公司推送的csv文件,列出现了单双引号,甚至是空格,这对pandas导入数据库来说,引起了很大的不便,后来发现,把列出现的单双引号和空格去掉其实很简答,一行代码就可以搞定。
df = df.rename(columns=lambda x: x.replace("'","").replace('"','')).replace(" ",""...
                                    用python读取包含手机号的Excel表格文件时,由于有的手机号录入时不规范,数值间有的存在空格,有的不存在空格,如下所示。
为保证后续匹配工作顺利进行,对手机号进行格式转换,统一转换为浮点型。
df["手机号码"].astype(np.float)
不过执行该语句时报错,报错信息如下:
ValueError: could not convert string to float: ‘130 1111 1112’
由于手机号间存在空格,系统将其默认为字符型,无法强制转换为浮点型。只有将间的空格去除
transform = lambda x: x[:4].upper(), data.index = data.index.map(transform)对轴索引映射修改
data.rename(index=str.title, columns=str.upper)直接通过rename修改.