从数据框和 CSV 文件中删除特定字符

3

我有一个csv文件,使用pandas dataframe进行处理。 在名为left的列中,我应该只有数字 1)

  df.icol(4) 
    0       2492
    1       2448
    2       2410
    3       2382
    4       2358
    5       2310
    6       2260
    7       2208
    8       2166
    9       2134
    10       198
    11       198
    12       239
    13       239
    14       243
    15       241
    16       239
    17       394
    18       396
    19       396
    20       396
    21       396
    22       396
    23       396
    24       396
Name: bottom, dtype: object

然而,在我的 CSV 文件中进一步查看时,我发现像 396] 或 [456 这样的内容。我的问题是如何在此列中删除所有的 [ 和 ]。

另外一个列中:

df1.icol(0)
0       'm'
1       'i'
2       'i'
3       'l'
4       'm'
5       'u'
6       'i'
7       'l'
8       'i'
9       'l'
10      '.'
11      '3'
12      'A'
13      'M'
14      'S'
15      'U'
16      'N'
17      'A'
18      'D'
19      'R'
20      'E'
21      'S'
22      'S'
23      'E'
Name: char, dtype: object

我还注意到一些行中包含['E' , ]'S'而不是'E''S'。我该如何去掉[]

3)我有一个数据框:

df =[['c', 88, 118, 2872, 2902], [] ,['g', 8, 98, 287, 202]]

我希望删除所有 '[]',以下是一个示例:

df= [['c', 88, 118, 2872, 2902], ['g', 8, 98, 287, 202]]
1个回答

7

如果需要替换所有列中的值,我认为您可以使用replace将其替换为空字符串:

df = df.replace(['\[','\]'], ['',''], regex=True)

示例:

df = pd.DataFrame({'char':['[E','S]','[E']})
print (df)
  char
0   [E
1   S]
2   [E

df = df.replace(['\[','\]'], ['',''], regex=True)
print (df)
  char
0    E
1    S
2    E

如果只需要在一个列中替换:

df.char = df.char.replace(['\[','\]'], ['',''], regex=True)
print (df)
  char
0    E
1    S
2    E

要删除空列表,请使用列表推导式

L = [['c', 88, 118, 2872, 2902], [] ,['g', 8, 98, 287, 202]]

L1 = [x for x in L if len(x) !=0]
print (L1)
[['c', 88, 118, 2872, 2902], ['g', 8, 98, 287, 202]]

如果需要删除NaN行,可以使用dropna函数:

df = pd.DataFrame([['c', 88, 118, 2872, 2902], [] ,['g', 8, 98, 287, 202]])
print (df)
      0     1      2       3       4
0     c  88.0  118.0  2872.0  2902.0
1  None   NaN    NaN     NaN     NaN
2     g   8.0   98.0   287.0   202.0

print (df.dropna(how='all'))
   0     1      2       3       4
0  c  88.0  118.0  2872.0  2902.0
2  g   8.0   98.0   287.0   202.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接