我如何根据日期列总结 python 中 qtablewidget 的所有价格?
How can I sum up of all prices from tablewidget in python in terms of date column?
我在编写代码以根据日期列汇总价格时遇到问题。
例如:
2019-12-31
我们有:
39,0 和 62.0
我想求和并在其他列或新行的最后日期下得到 101.0
tablewidget 中的所有数据我感谢 excel 电子表格 reader 程序:
df = pd.read_excel('test_cod.xlsx')
self.tableWidget_25.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range (len(df.columns)):
self.tableWidget_25.setItem(i,j,QTableWidgetItem(str(df.iat[i,j])))
test_cos.xlsx 这里:spreedsheet
我为此创建了一个简单的 csv,但您可以轻松地将其应用于您的数据框。我使用的数据框是这样的:
Date value total
0 24-11-2019 10 NaN
1 24-11-2019 20 NaN
2 24-11-2019 50 NaN
3 26-11-2019 14 NaN
4 26-11-2019 23 NaN
5 02-12-2019 15 NaN
6 02-12-2019 15 NaN
这是我想到的解决方案。它可能不是最佳的,因为我几乎没有使用过 pandas,但它确实有效。它不会在我认为你的草稿正在做的循环中循环,这在性能方面更好。
import pandas as pd
df = pd.read_csv('test.csv')
compareVal = df.Date[0]
total=0
print(df)
for x, date in enumerate(df.Date):
if compareVal==date:
total += df.value[x]
else:
df.at[x-1,'total'] = total
total = df.value[x]
compareVal = df.Date[x]
if x == len(df)-1:
df.at[x,'total'] = total
print(df)
这是输出:
Date value total
0 24-11-2019 10 NaN
1 24-11-2019 20 NaN
2 24-11-2019 50 80.0
3 26-11-2019 14 NaN
4 26-11-2019 23 37.0
5 02-12-2019 15 NaN
6 02-12-2019 15 30.0
我在编写代码以根据日期列汇总价格时遇到问题。
例如:
2019-12-31
我们有:
39,0 和 62.0
我想求和并在其他列或新行的最后日期下得到 101.0
tablewidget 中的所有数据我感谢 excel 电子表格 reader 程序:
df = pd.read_excel('test_cod.xlsx')
self.tableWidget_25.setRowCount(len(df.index))
for i in range(len(df.index)):
for j in range (len(df.columns)):
self.tableWidget_25.setItem(i,j,QTableWidgetItem(str(df.iat[i,j])))
test_cos.xlsx 这里:spreedsheet
我为此创建了一个简单的 csv,但您可以轻松地将其应用于您的数据框。我使用的数据框是这样的:
Date value total
0 24-11-2019 10 NaN
1 24-11-2019 20 NaN
2 24-11-2019 50 NaN
3 26-11-2019 14 NaN
4 26-11-2019 23 NaN
5 02-12-2019 15 NaN
6 02-12-2019 15 NaN
这是我想到的解决方案。它可能不是最佳的,因为我几乎没有使用过 pandas,但它确实有效。它不会在我认为你的草稿正在做的循环中循环,这在性能方面更好。
import pandas as pd
df = pd.read_csv('test.csv')
compareVal = df.Date[0]
total=0
print(df)
for x, date in enumerate(df.Date):
if compareVal==date:
total += df.value[x]
else:
df.at[x-1,'total'] = total
total = df.value[x]
compareVal = df.Date[x]
if x == len(df)-1:
df.at[x,'total'] = total
print(df)
这是输出:
Date value total
0 24-11-2019 10 NaN
1 24-11-2019 20 NaN
2 24-11-2019 50 80.0
3 26-11-2019 14 NaN
4 26-11-2019 23 37.0
5 02-12-2019 15 NaN
6 02-12-2019 15 30.0