Python 将CSV列中的所有字符串更改为整数列表

Python 将CSV列中的所有字符串更改为整数列表,python,pandas,csv,Python,Pandas,Csv,目前,我正在使用pandas更改CSV字符串列: "3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80" 进入INT列表: [3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80] 有人知道怎么做吗? 理想情况下,我想把它重写到我从中提取数据的同一个CSV文件中,但我想我可以在我必须做的事情的末尾添加.to_CSV 如有任何建议,将不胜感激!谢谢 更新: CSV中使用

目前,我正在使用pandas更改CSV字符串列:

"3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80"
进入INT列表:

[3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80]
有人知道怎么做吗? 理想情况下,我想把它重写到我从中提取数据的同一个CSV文件中,但我想我可以在我必须做的事情的末尾添加.to_CSV

如有任何建议,将不胜感激!谢谢

更新: CSV中使用的更多数据

这是一个可复制的例子

导入操作系统
作为pd进口熊猫
databasefile=“I:\Github\ClubKeno\Keno Project\Database\..\LotteryDatabase.csv”
def dataSort():
db=pd.read\u csv(数据库文件,跳过空白行=True,
姓名=[‘抽签号码’、‘中奖号码’、‘额外号码’、‘踢球者’],页眉=0)
db.删除重复项(就地=真)
#转换数据类型
db['Winning_Numbers']=列表(映射(int,pd.Series.str.split(“,”))
打印(db[“中奖号码])
数据排序()

数据:
Draw\u Number winding\u Number额外\u Number Kicker
1500844 3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80南2
1500845 6,7,11,12,13,17,18,23,29,30,39,42,47,50,51,56,62,63,66,75南2
1500846 2,9,10,12,14,18,24,28,38,40,41,44,50,55,57,61,65,68,72,76南1
1500847 9,10,22,25,28,36,40,45,46,47,52,54,57,58,59,65,69,70,74,79南2
1500848 7,9,13,14,16,17,18,19,24,25,27,34,40,41,42,47,49,50,53,71南2
1500849 3,4,6,7,9,16,32,35,36,48,49,51,54,61,63,66,67,68,73,74南2
1500850 15,16,17,18,21,23,26,31,32,44,45,46,47,54,56,57,58,64,75,79南2
1500851 8,13,15,17,19,22,25,28,29,31,33,34,37,41,46,47,53,54,63,64南1
1500852 5,7,8,15,20,23,24,26,27,34,40,46,53,58,60,65,66,68,69,74南1
1500853 1,13,15,16,17,19,21,37,39,46,47,50,53,54,57,61,67,71,72,76 5
1500854 8,15,18,22,28,31,33,34,35,39,40,46,47,57,65,67,69,74,76,78南2
1500855 2,5,8,12,17,18,20,21,26,31,40,43,46,58,62,64,69,74,76,79南1
1500856 2,9,17,22,25,27,29,39,42,43,49,52,61,64,67,69,71,75,79,80南2
1500857 4,5,9,11,15,18,22,31,32,33,42,45,48,58,60,61,65,69,70,73南2
1500858 3,9,10,14,16,29,37,40,42,46,52,53,54,55,56,57,72,74,79,80南1
1500859 11,12,16,19,20,27,28,32,37,44,46,54,58,59,62,66,69,75,77,78南1
15008603,6,7,11,17,19,23,24,30,31,32,33,42,48,49,57,68,69,70,73 5
使用转换器的
参数:
将熊猫作为pd导入
df=pd.read_csv('LotteryDatabase.csv',converters={'Winning_Numbers':eval})
抽奖号码获胜号码额外号码踢球者
1500844(3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80)南2
1500845(6,7,11,12,13,17,18,23,29,30,39,42,47,50,51,56,62,63,66,75)南2
1500846(2,9,10,12,14,18,24,28,38,40,41,44,50,55,57,61,65,68,72,76)南1
1500847(9,10,22,25,28,36,40,45,46,47,52,54,57,58,59,65,69,70,74,79)南2
1500848(7,9,13,14,16,17,18,19,24,25,27,34,40,41,42,47,49,50,53,71)南2
打印(键入(df.winding_number.loc[0]))
>>>元组
打印(键入(df.winding_number.loc[0][0]))
>>>int
#如果你绝对需要中奖号码作为一个列表
df.Winning_number=df.Winning_number.apply(列表)
  • 将其写回csv将不会维护
    类型
    • 尝试维护
      类型
使用转换器的
参数:
将熊猫作为pd导入
df=pd.read_csv('LotteryDatabase.csv',converters={'Winning_Numbers':eval})
抽奖号码获胜号码额外号码踢球者
1500844(3,9,11,16,25,26,28,29,36,40,41,46,63,66,67,69,72,73,78,80)南2
1500845(6,7,11,12,13,17,18,23,29,30,39,42,47,50,51,56,62,63,66,75)南2
1500846(2,9,10,12,14,18,24,28,38,40,41,44,50,55,57,61,65,68,72,76)南1
1500847(9,10,22,25,28,36,40,45,46,47,52,54,57,58,59,65,69,70,74,79)南2
1500848(7,9,13,14,16,17,18,19,24,25,27,34,40,41,42,47,49,50,53,71)南2
打印(键入(df.winding_number.loc[0]))
>>>元组
打印(键入(df.winding_number.loc[0][0]))
>>>int
#如果你绝对需要中奖号码作为一个列表
df.Winning_number=df.Winning_number.apply(列表)
  • 将其写回csv将不会维护
    类型
    • 尝试维护
      类型

此问题通常发生在将数据帧保存和加载为
.CSV文件时(使用
到\u CSV()
),这是一种文本格式。因此,它不能包含对象的类型

如果要维护该类型,可以对该对象进行pickle(如果它是可pickle的!)

或者在从CSV读取时,您可以将该列作为列表读取

db.loc[:,'Winning_Numbers']=db.loc[:,'Winning_Numbers'].apply(lambda x:literal_eval(x))

此问题通常发生在将数据帧作为
.CSV文件保存和加载时(使用
to_CSV()
),这是一种文本格式。因此,它不能包含对象的类型

如果要维护该类型,可以对该对象进行pickle(如果它是可pickle的!)

或者在从CSV读取时,您可以将该列作为列表读取