小编Oli*_*eph的帖子

使用具有不同格式的csv中的数据更新csv

我正在尝试使用其他来源提供的一些学生数据来更新csv文件,但是他们已经将他们的csv数据格式化为与我们的略有不同.

它需要根据三个标准匹配学生的名字,他们的班级,最后是该地点的前几个字母,所以对于B班的前几个学生Dumpt来说实际​​上是Dumpton Park.

找到匹配项时

  • 如果CSV 2中学生的记分卡为0或空白,则不应更新CSV 1中的分数列
  • 如果学生在CSV 2中的编号为0或为空,则不应更新CSV 1中的"否"列
  • 否则,它应该将CSV 2中的数字导入CSV1

以下是一些示例数据:

CSV 1

Class,Local,Name,DPE,JJK,Score,No
Class A,York,Tom,x,x,32,
Class A,York,Jim,x,x,10,
Class A,York,Sam,x,x,32,
Class B,Dumpton Park,Sarah,x,x,,
Class B,Dumpton Park,Bob,x,x,,
Class B,Dumpton Park,Bill,x,x,,
Class A,Dover,Andy,x,x,,
Class A,Dover,Hannah,x,x,,
Class B,London,Jemma,x,x,,
Class B,London,James,x,x,,
Run Code Online (Sandbox Code Playgroud)

CSV 2

"Class","Location","Student","Scorecard","Number"
"Class A","York","Jim","0","742"
"Class A","York","Sam","0","931"
"Class A","York","Tom","0","653"
"Class B","Dumpt","Bob","23.1","299"
"Class B","Dumpt","Bill","23.4","198"
"Class B","Dumpt","Sarah","23.5","12"
"Class A","Dover","Andy","23","983"
"Class A","Dover","Hannah","1","293"
"Class B","Lond","Jemma","32.2","0"
"Class B","Lond","James","32.0","0"
Run Code Online (Sandbox Code Playgroud)

CSV 1 UPDATED(这是所需的输出)

Class,Local,Name,DPE,JJK,Score,No
Class A,York,Tom,x,x,32,653
Class A,York,Jim,x,x,10,742
Class A,York,Sam,x,x,32,653
Class B,Dumpton Park,Sarah,x,x,23.5,12
Class B,Dumpton Park,Bob,x,x,23.1,299 …
Run Code Online (Sandbox Code Playgroud)

python csv python-2.7 pandas

5
推荐指数
4
解决办法
407
查看次数

如何在csv文件中将一列与另一列相乘并重新编写

我有一些csv格式的数据,我需要在第6列执行第3列的乘法,并将结果追加到最后.我的数据如下:

 TITLE,TITLE,T,T,T,T
 data,data,5,data,data,98.7,data
 data,data,2,data,data,97,data
 data,data,5,data,data,98,data
 data,data,4,data,data,8.7,data
 data,data,5,data,data,9.7,data
 data,data,12.5,data,data,198.7,data
Run Code Online (Sandbox Code Playgroud)

我真的很喜欢编码,但我的尝试如下:从集合导入defaultdict导入csv import datetime导入副本

class_col = 2
data_col = 5

with open('minitest.csv', 'r') as f:
    data = [line.strip().split(',') for line in f]

for row in data:
    class_col*data_col

with open('minitest_edit.csv', 'w') as nf:
    nf.write('\n'.join(','.join(row) for row in data))

print "done"
Run Code Online (Sandbox Code Playgroud)

我没有收到任何错误,有什么建议吗?谢谢OS"

python csv multiplying python-2.7

1
推荐指数
1
解决办法
2634
查看次数

标签 统计

csv ×2

python ×2

python-2.7 ×2

multiplying ×1

pandas ×1