繁体   English   中英

python pandas在csv文件的特定列中删除行并替换值

[英]python pandas to drop lines and substitute values in specific columns of a csv file

我可以使用pandas python模块执行以下操作:

  1. 自动删除在特定列(例如第1列和第2列)没有值的行
  2. 将剩余的缺失值替换为预定义的值

我在网上搜索,找不到同时满足这两个条件的方法。

例:
此输入(其中NA是特定字符或空白,而X是另一个字符,已知为先验)

NA, 1, 2, X, 5, 6
5, 6, 7, 8, 9, 10
NA, 3, 4, 5, 6, 7
9, 8, 7, 6, 5, X  

应该成为

5, 6, 7, 8, 9, 10
9, 8, 7, 6, 5, 0

要删除带有NA的行,您可以执行以下操作:

df.dropna()

要指定检查NaN的列,可以提供subset关键字参数,请参阅http://pandas.pydata.org/pandas-docs/stable/genic/pandas.DataFrame.dropna.html
要替换某个值,您可以执行以下操作:

df.replace('X', 0)

完整示例:

In [14]: df
Out[14]: 
    0  1  2  3  4   5
0 NaN  1  2  X  5   6
1   5  6  7  8  9  10
2 NaN  3  4  5  6   7
3   9  8  7  6  5   X

In [15]: df.dropna(subset=[0,1])
Out[15]: 
   0  1  2  3  4   5
1  5  6  7  8  9  10
3  9  8  7  6  5   X

In [16]: df.dropna(subset=[0,1]).replace('X', 0)
Out[16]: 
   0  1  2  3  4   5
1  5  6  7  8  9  10
3  9  8  7  6  5   0

另外,在数字列中使用'X''X'字符串不是很有效(这会使它成为object类型,而不是intfloat

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM