Python列表到csv抛出错误:应为iterable,而不是numpy.int64

Python列表到csv抛出错误:应为iterable,而不是numpy.int64,python,csv,Python,Csv,我想将列表写入csv,当尝试这样做时,我收到以下错误 out.writerows(fin_city_ids) _csv.Error: iterable expected, not numpy.int64 我的代码如下 org_id.append([pol_id,bldest_id]) fin_ids=list(org_city_id['org_id'].unique()) print(fin_ids) out = csv.writer(open("D:/dataset/fin_ids.csv

我想将列表写入csv,当尝试这样做时,我收到以下错误

out.writerows(fin_city_ids)
_csv.Error: iterable expected, not numpy.int64
我的代码如下

org_id.append([pol_id,bldest_id])
fin_ids=list(org_city_id['org_id'].unique())
print(fin_ids)

out = csv.writer(open("D:/dataset/fin_ids.csv","w"), delimiter='|')
out.writerows(fin_ids)
下面是fin_ID的输出

[1002774, 0, 1000702, 1000339, 1001620, 1000710, 1000202, 1003143, 147897, 31018, 1001502, 1002812, 1003026, 1003280, 1003289, 1002714, 133191, 5252218, 6007821, 1002632]
Org_id是包含重复id的数据框。fin_id是包含id的unqiue值的列表。fin id是从数据框Org_id派生的唯一id的列表


所需的输出是一个CSV,所有值都在单独的行中,因为我稍后将把数据加载到sql表中。

您可以通过多种方式完成此操作。但是,如果您希望从
csv
模块
writerows
,则必须首先将列表
fin_id
转换为一系列列表:

fin_ids = [1002774, 0, 1000702, 1000339, 
   1001620, 1000710, 1000202, 1003143, 147897, 
   31018, 1001502, 1002812, 1003026, 1003280, 
   1003289, 1002714, 133191, 5252218, 6007821, 1002632]

outfile = open('D:/dataset/fin_ids.csv','w')
out = csv.writer(outfile)
out.writerows(map(lambda x: [x], fin_ids))
outfile.close()
另一种方法是使用pandas
系列
中的
.to_csv()
方法。由于您是从一个数据帧开始的,因此可以执行以下操作:

org_city_id['org_id'].unique().to_csv("D:/dataset/fin_ids.csv", index=False)
这两者都应生成包含以下数据的csv文件:

1002774
0
1000702
1000339
1001620
1000710
1000202
1003143
147897
31018
1001502
1002812
1003026
1003280
1003289
1002714
133191
5252218
6007821
1002632

打印出
fin\u id
时会看到什么。请在这里添加,并向我们展示所包含的
org\u id
csv
正在抱怨,因为您没有为它提供
writerows
的序列。请尝试
outfile=open(“D:/dataset/fin_ids.csv”,“w”);out=csv.writer(outfile,分隔符=“|”);out.writerow(fin_id);outfile.close()
。对一个列表或数组使用
writerow
。这只是创建了一种单行,那么您想要的输出是什么?用输出详细信息更新了问题