Python:如何将销售金额和每单位价格从字符串更改为整数
我想将销售金额和每单位价格从字符串更改为int,但这是错误的。压缩数据后,每个属性都成为一个元组。然后,我尝试使用此代码(list(amount_selled))更改为list,但它导致了一个错误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
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,它们不需要什么是行列表
?-那是数据吗?没问题。如果有机会,请把我的答案记为正确。