Я бы использовал парсер, который позволяет обрабатывать файл xml порциями, например парсер экспатов. Единственная проблема заключается в том, что вы должны знать с начала столбцы, которые вы хотите записать в CSV-файл. Код может быть:
with open('file path', 'rb') as fdin, open('File.csv', 'w', newline='') as fdout:
writer = csv.DictWriter(fdout, ['Id', 'Name', 'Count'],
extrasaction='ignore') # any additional field will be ignored
writer.writeheader()
def start_elt(name, attrs):
if name == 'row':
writer.writerow(attrs)
parser = xml.parsers.expat.ParserCreate()
parser.StartElementHandler = start_elt
parser.ParseFile(fdin)
print(fdout.getvalue())
С файлом примера я получаю:
Id,Name,Count
1,tanu,289949
2,daniel,863524
3,ricky,1909662