Python:如何将销售金额和每单位价格从字符串更改为整数

Python:如何将销售金额和每单位价格从字符串更改为整数,python,jupyter-notebook,Python,Jupyter Notebook,我想将销售金额和每单位价格从字符串更改为int,但这是错误的。压缩数据后,每个属性都成为一个元组。然后,我尝试使用此代码(list(amount_selled))更改为list,但它导致了一个错误 path = 'data.txt' f = open(path) for line in f: pass data = [line.rstrip('\n').split(' ') for line in open(path)] d

我想将销售金额和每单位价格从字符串更改为int,但这是错误的。压缩数据后,每个属性都成为一个元组。然后,我尝试使用此代码(list(amount_selled))更改为list,但它导致了一个错误

path = 'data.txt'   
f = open(path)        

for line in f:       
pass          

data = [line.rstrip('\n').split(' ') for line in open(path)]      
data      


> output
[['2020-09-23', 'Item_A', '5', '1.90'],
['2020-09-23', 'Item_B', '6', '1.20'],
['2020-09-23', 'Item_A', '2', '1.90'],
['2020-09-23', 'Item_B', '3', '1.20'],
['2020-09-24', 'Item_A', '13', '1.90'],
['2020-09-24', 'Item_B', '2', '1.20'],
['2020-09-24', 'Item_C', '8', '1.30'],
['2020-09-25', 'Item_D', '7', '2.70'],
['2020-09-25', 'Item_A', '15', '1.90'],
['2020-09-25', 'Item_D', '7', '2.70'],
['2020-09-25', 'Item_B', '6', '1.20'],
['2020-09-26', 'Item_B', '1', '1.20'],
['2020-09-26', 'Item_C', '8', '1.30'],


date, item_name, amount_sold, price_per_unit = zip(*data)    
int(date)    


>I get an error at this line that is TypeError: 'list' object is not callable

这样就行了。如果你想处理更大的数据集,我建议你花点时间学习使用熊猫库。

我不确定我是否正确,因为你没有解释什么是
line\u list
。然而,似乎可以合理地假设
line\u list==data
。做出这样的假设,从你给出的输出中重建你的数据,在
zip
调用中使用你的代码行,然后在你的主题中做你想做的事情,我没有问题。我觉得你的代码很正确。以下是我对您的代码所做的操作:

data = [['2020-09-23', 'Item_A', '5', '1.90'],
['2020-09-23', 'Item_B', '6', '1.20'],
['2020-09-23', 'Item_A', '2', '1.90'],
['2020-09-23', 'Item_B', '3', '1.20'],
['2020-09-24', 'Item_A', '13', '1.90'],
['2020-09-24', 'Item_B', '2', '1.20'],
['2020-09-24', 'Item_C', '8', '1.30'],
['2020-09-25', 'Item_D', '7', '2.70'],
['2020-09-25', 'Item_A', '15', '1.90'],
['2020-09-25', 'Item_D', '7', '2.70'],
['2020-09-25', 'Item_B', '6', '1.20'],
['2020-09-26', 'Item_B', '1', '1.20'],
['2020-09-26', 'Item_C', '8', '1.30']]

date, item_name, amount_sold, price_per_unit = zip(*data)

print(amount_sold)

x = list(amount_sold)
print(x)
结果:

('5', '6', '2', '3', '13', '2', '8', '7', '15', '7', '6', '1', '8')
['5', '6', '2', '3', '13', '2', '8', '7', '15', '7', '6', '1', '8']
[5, 6, 2, 3, 13, 2, 8, 7, 15, 7, 6, 1, 8]
正如你所看到的,我得到了一个元组,表示你所说的
amount\u salled
。但是我可以把它变成一个
列表
,即使你说这样做会出错

如果你能看到你所做的与这里所发生的不同,也许它会帮助你弄清楚发生了什么。通过查看代码,我看不出您将如何得到类似
TypeError的错误:“list”对象不可调用。我很好奇你为什么会这样

我想您可能已经知道这一点,但您可以使用如下表达式将字符串列表转换为数字列表:

amount_sold = [int(x) for x in amount_sold]
print(amount_sold)
结果:

('5', '6', '2', '3', '13', '2', '8', '7', '15', '7', '6', '1', '8')
['5', '6', '2', '3', '13', '2', '8', '7', '15', '7', '6', '1', '8']
[5, 6, 2, 3, 13, 2, 8, 7, 15, 7, 6, 1, 8]

共享您的
data.txt
的内容,可以使用
输出重新创建该内容
,但为了完成此任务,请从代码中删除back tics,它们不需要什么是
行列表
?-那是数据吗?没问题。如果有机会,请把我的答案记为正确。