我很困惑csv数据处理,任何帮助都会很好。你知道吗
我有一个csv文件,有多个列,如下所示:
col_1;col_2;col_3;col_4;col_5;col_6;col_7;col_8;
Object1;123;Something;456;Something2;0;0;someword;789
Object2;123;Something;456;Something2;0;0;someword;789
Object3;123;Something;456;Something2;0;0;someword;789
Object4;123;Something;456;Something2;0;0;someword;789
但有些对象在第6列、第7列和第8列上缺少数据,而在第6列中有一个关键字:
col_1;col_2;col_3;col_4;col_5;col_6;col_7;col_8;
Object1;123;Something;456;Something2;0;0;someword;789
Object2;123;Something;456;Something2;0;0;someword;789
Object3;123;Something;456;Something2;Keyword;789;Object4;123
Something;456;Something2;0;0
我检测到有多少行包含这些关键字和行数:
import csv
class FixIt:
def test(self):
count = 0
with open('input.csv',mode='r') as file
read = csv.reader(file)
for num,row in enumerate(reader):
count+=1
if 'Keyword' in row[0]:
print num, row
count+=1
print(count)
TryIt = FixIt()
TryIt.test()
我需要在关键字之前的单元格上放置x2个零或somestring值,以便将输出重新排序为原始结构,如:
col_1;col_2;col_3;col_4;col_5;col_6;col_7;col_8;col_9
Object1;123;Something;456;Something2;0;0;someword;789
Object2;123;Something;456;Something2;0;0;someword;789
Object3;123;Something;456;Something2;corrective_data;corrective_data;Keyword;789
Object4;123;Something;456;Something2;0;0;someword;789
也许与熊猫可以做,但我不知道在哪里或如何开始,一些方向或答案将不胜感激。你知道吗
尝试1:
我尝试将每行上的字符串关键字替换为0;0;关键字:
with open("input.csv", "r") as file_input:
with open("output.csv", "w") as file_output:
for line in file_input:
file_output.write(line.replace('Keyword','0;0;Keyword'))
但结果是错误的,它在每个单元格中添加了一个“;”,并将字符串“;”0;0;关键字也放入其中。在用vim查看了这个文件之后,我发现我还需要在789之后添加一个新行(因为我将“”视为特征线)。你知道吗
我现在很迷茫,也许为每一行创建一个对象和一个属性列表会更好(?)。你知道吗
不确定这是否是您想要的,因为第二个代码单元中的数据格式不正确。我假设您要进行以下更改:
因此,以下是您如何对熊猫进行更改:
相关问题 更多 >
编程相关推荐