Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 删除数据帧和csv文件中的特定字符_Python 3.x_Csv_Pandas_Dataframe - Fatal编程技术网

Python 3.x 删除数据帧和csv文件中的特定字符

Python 3.x 删除数据帧和csv文件中的特定字符,python-3.x,csv,pandas,dataframe,Python 3.x,Csv,Pandas,Dataframe,我有一个csv文件,我用熊猫数据框处理。 在名为left的列中,我应该只有数字 (一) 然而,在我的csv文件中,我注意到我有类似于396]或[456]的内容。我的问题是如何删除本专栏中的所有[and]。 2) 在另一个专栏里 df1.icol(0) 0 'm' 1 'i' 2 'i' 3 'l' 4 'm' 5 'u' 6 'i' 7 'l' 8 'i' 9 'l' 10

我有一个csv文件,我用熊猫数据框处理。 在名为
left
的列中,我应该只有数字 (一)

然而,在我的csv文件中,我注意到我有类似于396]或[456]的内容。我的问题是如何删除本专栏中的所有[and]。 2) 在另一个专栏里

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]]
我认为如果需要替换所有列中的值,可以使用空字符串:

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
行:

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]]
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