【发布时间】:2021-02-05 08:03:49
【问题描述】:
我有以下代码根据 2 个变量(bh 和频率)在函数中进行一些计算。当我以固定值 bh 运行没有循环的代码时,我得到了一个正确的输出和保存在 .csv 文件中的数据框。:
bh frequency Re Im
0 1e-05 1 5.86848609615851 -0.999374346845734
1 1e-05 11 4.34298196390882 -0.994875549720418
2 1e-05 21 3.93236459069042 -0.99112086235206
3 1e-05 31 3.68545733552675 -0.987695572513367
4 1e-05 41 3.50849758486341 -0.984487932588323
但是,当我在 bh 上的循环中编码时,我想在 bh 值和频率列表上循环,我得到与以前相同的输出,这意味着它不会循环。是否有人有解决方案来修改数据框或将 eaxh bh 循环输出保存在新的 .csv 中,以便稍后绘制数据。
from mpmath import *
import numpy as np
import cmath
import math
import pandas as pd
mp.dps = 15; mp.pretty = True
a = mpf(0.25)
b = mpf(0.25)
z = mpf(0.75)
frequency = np.arange(1, 50, 10) # frequency range
bh = np.arange(10e-6, 30e-6, 10e-6) #10e-6 # width
print(bh)
D = 1e-6 #7.8e-4 # diffusivity
gamma = 0.5772 # Euler constant
v = []
w =[]
i = []
def q(frequency):
for i in bh:
# for f in frequency:
omega = (((i ** 2) * 2 * math.pi * frequency) / D) # depends on bh and frequency
u = ((-j/(math.pi * omega))*meijerg([[1, 3/2], []], [[1, 1], [0.5, 0]], j*omega))
v = np.real(u)
w = np.imag(u)
return i, frequency, v, w
#transpose arrays
T = np.vectorize(q)
print(T(frequency))
df = np.array(T(frequency)).T
print(df)
# create DataFrame
df1 = pd.DataFrame(data=df, columns=['bh', 'frequency','Re', 'Im'])
print(df1)
#save in .csv
df1.to_csv('C:\\Users\\calculations\\T.csv')
【问题讨论】:
标签: python pandas dataframe nested-loops