我有一个包含许多列表的列表,其中有 4 个元组。
my_list = [[(12, 1), (10, 3), (4, 0), (2, 0)],
[(110, 1), (34, 2), (12, 1), (55, 3)]]
Run Code Online (Sandbox Code Playgroud)
我希望它们在两个单独的列表中,例如:
my_list2 = [12,10,4,2,110,34,12,55]
my_list3 = [1,3,0,0,1,2,1,3]
Run Code Online (Sandbox Code Playgroud)
我的尝试是为此使用该map功能。
my_list2 , my_list3 = map(list, zip(*my_list))
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误:
ValueError: too many values to unpack (expected 2)
Run Code Online (Sandbox Code Playgroud) 我有 5 个不同列的数据,它们的值彼此不同。
Actual gen Storage Solar Gen Total Gen Frequency
1464 1838 1804 18266 51
2330 2262 518 4900 51
2195 923 919 8732 49
2036 1249 1316 3438 48
2910 534 1212 4271 47
857 2452 1272 6466 50
2331 990 2729 14083 51
2604 767 2730 19037 47
993 2606 705 17314 51
2542 213 548 10584 52
2030 942 304 11578 52
562 414 2870 840 52
1111 1323 337 19612 49
1863 2498 1992 18941 …Run Code Online (Sandbox Code Playgroud) 我使用plotly 创建了一个表格,其中包含混合类型的值,例如文本、数字和百分比。我创建的表如下所示:
正如您所看到的,某些数字具有非常大的小数位,或者某些数字(如 PLF 列)不是百分比形式。如何在绘图中指定这些数字的格式?我的尝试:
import plotly.graph_objs as go
fig = go.Figure(data=[go.Table(header=dict(values=['<b>Source</b>', '<b>Installed Capacity (MW)</b>',
'<b>Optimum Capacities(MW)</b>', '<b>Generation Units (MWh)</b>',
'<b>PLF (%)</b>', '<b>Generation Share (%)</b>',
'<b>Annual Generation (MU)</b>']),
cells=dict(values=[list(installCapacities.keys()), list(installCapacities.values()),
list(optimumCapacities.values()), list(generationUnits.values()),
list(plf.values()), list(generationShare.values()),
list(annualGeneration.values())],
align='center', format=['text', 'number', 'number', 'number', 'percentage',
'percentage', 'number']))
])
Run Code Online (Sandbox Code Playgroud)
值来自不同的字典,它们的计算非常复杂,这就是为什么我在这里没有提到这一点,我只是想如何指定它们的数据类型,例如text,number或percentage?
所以我有一个 Excel 文件,其中包含以下格式的数据:
我想使用 xlwings 读取这些数据,并且我希望它是动态的,这意味着如果我在其中或中间添加数据,那么它应该能够做到这一点。到目前为止我已经尝试过,但它无法正常工作:
import xlwings as xw
app = xw.App(visible=False)
try:
wb1 = app.books.open(commonInputs)
sheet = wb2.sheets['Regional Transmission Links']
lastCell = generatorSheet.range('A1').end('right').last_cell.column
name = sheet.range('C5:L'+str(lastCell)).value
except Exception as e:
logging.exception("Something awful happened!")
print(e)
finally:
app.quit()
app.kill()
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
我有未定义数量的具有某些值的列。例如,假设有 4 列:[a,b,c,d],并且每个列名称都有关联的值,如下所示:
a b c d
0 23 11 0
11 43 33 22
12 0 12 0
Run Code Online (Sandbox Code Playgroud)
我想在 旁边写另一列d,其中包含值大于 0 的列的最大值,例如:像这样:
a b c d e
0 23 11 0 b,c
11 43 33 22 a,b,c,d
12 0 12 0 a,c
Run Code Online (Sandbox Code Playgroud)
我的尝试:
dic2 = {'a':[12,0,23],'b':[21,23,0],'c':[0,22,33],'d':[0,22,0]}
df = pd.DataFrame(dic2)
df[df>0]
Run Code Online (Sandbox Code Playgroud)
这将在零的地方返回NaN值,但我不知道如何获取具有这些NaN值的列。
我有 excel,其中有一行有 11 个值。
TotalSavings = [0, 8000, 8000, 8000, 8000, 8000, 8000, 8000, 8000, 8000, 8000]
Run Code Online (Sandbox Code Playgroud)
贴现率为 0.08,我使用 = 计算了 excel 中的 NPV NPV(0.08, TotalSavings)(显然有 11 列,所以不是 TotalSavings,而是 C3:C14(这里 C3 是 0 值,C14 是 8000))。它是49704。当我用 numpy NPV 做同样的事情时。
print(np.npv(0.08, TotalSavings))
Run Code Online (Sandbox Code Playgroud)
结果是:53680。有人可以帮忙吗?我想要与我们在 excel 中获得的结果相同的结果。
有一条用 Python 编写的语句,我无法理解该特定行的含义。
声明是:
signal = -16
powerRating = 30
energyRating = 30
socHigh = 1
soc = 15
freq = 15
chargeEff = 0.93
answer = min(signal*(signal>0), powerRating, (energyRating*socHigh - soc)*60.0/dataFreq/chargeEff),0)
Run Code Online (Sandbox Code Playgroud)
在答案陈述中有写
signal(signal > 0)
Run Code Online (Sandbox Code Playgroud)
这是什么意思?