read_csv
读取文件。这将读取所有行,并在有空字段的地方插入np.nan
。无需自己遍历数据。 正在读取输入文件
import time
import os
import pandas as pd
from datetime import datetime, timedelta
from pandas import ExcelWriter
ipfilepath = r"C:\Users\nmanthree\Desktop\m16\m16 nov\Satellite C2 PROD UK.txt"
data = pd.DataFrame(
columns=['ID', 'Date/Time (UTC)', 'User', 'Description', 'Previous Value', 'New Value', 'Target User'])
The data inside the ip file is something like
ID User New Value Previous Value Target User
1 Anil 10
2 Shyam 20 30 Jhon
3 Naren 30 40 Rose
我们可以看到,“先前值”和“目标用户”列中有空字段。正在逐行读取ip文件,因为文件大小如果很大且为txt格式,并将每一行附加到数据框。
with open(ipfilepath, "r", encoding="utf-8") as fp:
for line in read_in_chunks(fp):
if count == 0:
count += 1
continue
data = data.append({'ID': fields[0],
'User': fields[1],
'Description': fields[2],
'New Value': fields[3],
'Previous Value': fields[4],
'Target User': fields[5]}
, ignore_index=True)
count += 1
在追加时,由于在“上一个值”和“目标用户”列中有空字段,因此追加时将其视为字段[4]和字段[5],因此得到的错误为]]
<< >'Previous Value': fields[3] IndexError: list index out of range
因此,在将行数据追加到数据框时,如何跳过/忽略空字段。请帮助我。
read_csv
读取文件。这将读取所有行,并在有空字段的地方插入np.nan
。无需自己遍历数据。 ipfilepath = r"C:\Users\nmanthree\Desktop\m16\m16 nov\Satellite C2 PROD UK.txt"
ip_df = pd.read_csv(ipfilepath)
print(ip_df.to_string())
ID User New Value Previous Value Target User
1 Anil 10 NaN NaN
2 Shyam 20 30 Jhon
3 Naren 30 40 Rose
read_csv
读取文件。这将读取所有行,并在有空字段的地方插入np.nan
。无需自己遍历数据。