使用python单个输入csv文件
一直在寻找答案,似乎是一个非常简单的问题,但无法找到它,并希望有人可以提供帮助。
我试图使用python比较csv文件的一行中的字段与主代码列表,并将其添加到它显示的时间的记录中。 比如在excel中使用countif()和vlookup()函数。
这个想法是,当相关文件到达我的目录时,我可以运行这个脚本,而不必打开excel并手动完成工作。
麻烦的是,我似乎无法“自行”提取字段以使用if语句等。
下面的代码突出了我一直在尝试采取的方向。
首先我尝试了CSV模块。 它成功地从文件中检索一行 - 但后来我无法使用“.split(”,“)[n]方法跳出特定字段,因为它返回的是单个字母,而不是整个字段(我不知道为什么)。
即使我可以返回该字段,但在CSV的某些数据字段中也会有逗号,所以这种方法没有固定的字段编号可能会导致问题。 (我试图通过将它转换为纯文本格式的.txt文件,但它不工作)
接下来我尝试了熊猫,但我无法设法将行取出,只将列作为一个整体,因此第二个打印语句(而不是第2行)打印出整个数据集的第二个实例
我真正想要的是能够将第5行第4列作为适当的字符串/数字。
任何帮助不胜感激
os.system('clear')
identifier = []
data_line1 = []
data_line2=[]
data = []
io = []
path = '/home/data'
newest = max(glob.iglob('/home/data/*.csv'), key=os.path.getmtime) #assigns the name of the newest file in the dir to newest.
for i in range(0,5):
with open(newest, 'rtU') as file:
line1 = list(file)[i]
data_line1.append(line1)
line2 = pandas.read_csv(newest,sep=",", usecols=(4,5,16),header=1)
data_line2.append(line2)
print "###################################################################################################"
print data_line1[4]
print "###################################################################################################"
print data_line2[1]
一个样本数据集是(在这个抱歉的所有行是相同的,不能使用真实的数据,因为它不是我的):
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
以及上述脚本的输出显示行(对于方法1)或对应于列表编号(对于方法2)的数据组实例:
###################################################################################################
31/07/14 17:44,Standard P,727013,,,1002821,some info in here,a thing here,35,4.93,172.55,0,another thing here,some stuff here,a place here,"surname, name",0000-6677-009899-09,572011,knockout
###################################################################################################
Unnamed: 4 1002821 0000-6677-009899-09
0 NaN 1002821 0000-6677-009899-09
1 NaN 1002821 0000-6677-009899-09
2 NaN 1002821 0000-6677-009899-09
3 NaN 1002821 0000-6677-009899-09
4 NaN 1002821 0000-6677-009899-09
5 NaN 1002821 0000-6677-009899-09
6 NaN 1002821 0000-6677-009899-09
7 NaN 1002821 0000-6677-009899-09
我非常渴望得到一个解谜游戏的方式。
真正有问题的文件有一堆条目,所以如果有人能指出我在做什么错误的方向,那将是非常棒的:)
PS新手到Python和做这样的事情来帮助我学习,所以如果答案真的很简单,道歉.....
链接地址: http://www.djcxy.com/p/55093.html