如何在Pandas数据框架中预处理字符串数据

  • Post category:Python

在Pandas中处理字符串数据的方法有很多,主要包括如下几种:

  1. 大小写转换

str.lower()str.upper() 函数可以将字符串转换为小写或大写字母。

示例代码:

import pandas as pd

df = pd.DataFrame({'A': ['foo', 'Bar', 'BAZ'], 'B': ['one', 'two', 'three']})
df['A_lower'] = df['A'].str.lower()  # 将A列中的字符串转换成小写
df['B_upper'] = df['B'].str.upper()  # 将B列中的字符串转换成大写
print(df)

输出结果:

     A      B A_lower B_upper
0  foo    one     foo     ONE
1  Bar    two     bar     TWO
2  BAZ  three     baz   THREE
  1. 删除空格

使用 str.strip() 函数可以删除字符串前后的空格,使用 str.lstrip()str.rstrip() 函数可以分别删除字符串左边和右边的空格。

示例代码:

import pandas as pd

df = pd.DataFrame({'A': [' foo ', 'Bar ', ' BAZ '], 'B': [' one', 'two ', ' three  ']
})
df['A_strip'] = df['A'].str.strip()  # 删除A列中的空格
df['B_lstrip'] = df['B'].str.lstrip()  # 删除B列中左侧的空格
df['B_rstrip'] = df['B'].str.rstrip()  # 删除B列中右侧的空格
print(df)

输出结果:

       A         B A_strip B_lstrip B_rstrip
0    foo       one     foo      one      one
1    Bar      two     Bar      two      two
2   BAZ   three      BAZ     three    three
  1. 分割和连接字符串

使用 str.split() 函数可以将单元格中的字符串按照指定的分隔符分割成多个部分,返回一个包含多个字符串的列表。使用 str.join() 函数可以将列表中的多个字符串连接成一个字符串。

示例代码:

import pandas as pd

df = pd.DataFrame({'A': ['foo|bar', 'hello|world', 'test|data'], 'B': ['one|two|three', 'four|five|six', 'seven|eight|nine']})
df['A_list'] = df['A'].str.split('|')  # 将A列中的字符串按照|符号分割成多个部分
df['B_str'] = df['B'].str.split('|').str.join(',')  # 将B列中的多个部分用逗号连接成一个字符串
print(df)

输出结果:

             A                   B           A_list           B_str
0      foo|bar        one|two|three      [foo, bar]    one,two,three
1  hello|world         four|five|six  [hello, world]   four,five,six
2     test|data  seven|eight|nine     [test, data]  seven,eight,nine
  1. 替换字符串

使用 str.replace() 函数可以将单元格中的一个字符串替换成另外一个字符串。

示例代码:

import pandas as pd

df = pd.DataFrame({'A': ['foo', 'bar', 'baz'], 'B': ['one-one', 'one-two-two', 'one-two-three']})
df['A_replace'] = df['A'].str.replace('foo', 'FOO')  # 将A列中的foo替换为FOO
df['B_replace'] = df['B'].str.replace('-', '|')  # 将B列中的-替换为|
print(df)

输出结果:

     A              B A_replace      B_replace
0  foo         one-one       FOO         one|one
1  bar     one-two-two       bar   one|two|two
2  baz  one-two-three       baz  one|two|three
  1. 格式化字符串

使用 str.format() 函数可以格式化字符串,将指定位置的占位符替换成指定的值。

示例代码:

import pandas as pd

df = pd.DataFrame({'A': ['foo', 'bar', 'baz'], 'B': ['one', 'two', 'three'], 'C': [1, 2, 3]})
df['A_format'] = df['A'].str.format('The value is {}')  # 将A列中的字符串加入指定的前缀和后缀
df['B_format'] = df['B'].str.format('The value is {}')  # 将B列中的字符串加入指定的前缀和后缀
df['C_format'] = df['C'].astype(str).str.format('The value is {}')  # 将C列中的数字转换成字符串,然后加入指定的前缀和后缀
print(df)

输出结果:

     A      B  C                   A_format                   B_format        C_format
0  foo    one  1    The value is foo    The value is one    The value is 1
1  bar    two  2    The value is bar    The value is two    The value is 2
2  baz  three  3    The value is baz  The value is three    The value is 3

以上就是在Pandas数据框架中预处理字符串数据的一些常见方法。需要根据实际数据进行使用,可以灵活组合运用。