python替换缺失值_替换输入Python的缺失值

取决于一天结束时要使用列表的方式,您还可以将csv模块用于某些事情,这对于不止一个条目可能会出现多个列的情况将更为灵活.

import csv

with open(file, 'r') as f:

reader = csv.reader(f, delimiter='')

header = next(reader)

list = [[x if x else 'n/a' for x in line] for line in reader]

现在,列表将是一个列表列表,每个列表都包含实际项目.

In [11]: print(header)

['id', 'value1', 'value2', 'value3']

In [12]: print(list)

[['1', 'hello', 'world', 'something'], ['2', 'n/a', 'goodnight', 'world']]

在以下评论之后添加了Edit:

对上述方法稍加修改(使用Python 2.7词典理解)将使您获得词典;

import csv

with open(file, 'r') as f:

reader = csv.reader(f, delimiter='')

header = next(reader)

list = [{header[i]: line[i] if line[i] else 'n/a' for i in range(len(header))} for line in reader]

print(list)

# [{'value1': 'hello', 'value3': 'something', 'id': '1', 'value2': 'world'}, {'value1': 'n/a', 'value3': 'world', 'id': '2', 'value2': 'goodnight'}]

您问这是否更干净,这可能在很大程度上取决于您打算如何使用该结果.如果您决定检查结果,则词典方法为您提供了易于阅读的内容.

如果您处于需要对文件执行大量数据处理的情况,则可能会对为这种东西制作的pandas DataFrame数据结构感兴趣.但是,如果您不在那种情况下,那么这种方法可能会完全被淘汰.有关其功能的几个简单示例(例如,请注意,默认情况下它会解决您原来的“ n / a”问题):

In [1]: import pandas as pd

In [5]: df = pd.read_csv('testfile', delimiter='') # Or whatever your file is called

In [6]: df = df.set_index('id')

In [7]: df

Out[7]:

value1 value2 value3

id

1 hello world something

2 NaN goodnight world

In [8]: df[df['value3'] == 'something'] # Find all rows with a given value3

Out[8]:

value1 value2 value3

id

1 hello world something

In [10]: df[df['value2'] == 'goodnight'] # Find all rows with a given value2

Out[10]:

value1 value2 value3

id

2 NaN goodnight world

In [11]: df['value1'] # Show only value1

Out[11]:

id

1 hello

2 NaN

Name: value1, dtype: object

基本上,您可以在桌面上进行的任何操作在大熊猫中都是很自然的做法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值