【问题标题】:Making an address object into a string将地址对象变成字符串
【发布时间】:2022-09-29 01:29:42
【问题描述】:

我有一个带有地址的巨大数据集,我无法将地址行 1 从对象转换为字符串。

import pandas as pd
    
data = [\'1111 S. Washington Street\', \'2222 S. Jefferson Ave\', \'3333 W. Madison Court #2\']
      
df = pd.DataFrame(data, columns=[\'Address_Line1\'])
df[\'Address_Line1_2\'] = df[\'Address_Line1\'].str.upper()
df[\'Address_Line1_2\'] = df[\'Address_Line1_2\'].apply(lambda x: re.sub(\'[^A-Za-z0-9 ]+\', \'\', str(x)))
df[\'Address_Line1_2\']  = df[\'Address_Line1_2\'].astype(\'|S120\')
print(df.info())
df.head()

数据集中的某处有特殊字符,所以我尝试只保留字母数字,然后将其设为字符串,但最终我的数据框看起来像这样:

Address_Line1   Address_Line1_2
0   1111 S. Washington Street   b\'1111 S WASHINGTON STREET\' 
1   2222 S. Jefferson Ave   b\'2222 S JEFFERSON AVE\'
2   3333 W. Madison Court #2    b\'3333 W MADISON COURT 2\'

我看到这是一个“字节”问题,但是当我尝试解码时

df[\'Address_Line1_2\'] = df[\'Address_Line1_2\'].decode(\'UTF-8\')

我收到 \"AttributeError: \'Series\' 对象没有属性 \'decode\"。

如何完成此文本清理?

  • 您明确请求转换为包含.astype(\'|S120\') 的行的字节串。我认为你可以摆脱那条线。
  • 这很容易,谢谢。只需将其更改为 \'string\' ,一切都很好。谢谢!

标签: python string object decode encode


【解决方案1】:

您可以将数据解释为字符串列,而不是使用编码字符串的“字节”:

df['Address_Line1_2']  = df['Address_Line1_2'].astype('|S120')

其中astype 参数means

| - byte-order specifier(不适用字节顺序 - 请参阅:|, > and < in numpy datatype

S - 输入字符串

120 - 字节长度

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多