[英]Python: Naming of columns and merging two data frames into one
我想给我的示例数据列名称。 我希望这些列以目标函数及其决策变量命名,如下所示:f_1、f_2、h、b、l、t
样本数据:
sampler = qmc.LatinHypercube(d=4)
u_bounds = np.array([5.0, 5.0, 10.0, 10.0])
l_bounds = np.array([0.125, 0.125, 0.1, 0.1])
data = sampler.lhs_method(100)*(u_bounds-(l_bounds)) + (l_bounds)
列名来自哪里的优化问题:
def objectives (h,b,l,t):
f1 = 1.10471*(h**2)*l + 0.04811*t*b*(14.0 + l)
f2 = 2.1952 / (t**3)*b
return f1,f2
为目标函数塑造数据:
y=np.zeros((100,2))
for i in range(np.shape(data)[0]):
y[i,0], y[i,1] = objectives(data[i,0], data[i,1], data[i,2], data[i,3])
我尝试了什么:
df = pd.DataFrame(data=data)
df.columns = ["h", "b", "l", "t"]
df.head()
frames = [df, y,]
result = pd.concat(frames)
这个错误是这样的: TypeError: cannot concatenate object of type '<class 'numpy.ndarray'>'; only Series and DataFrame objs are valid
TypeError: cannot concatenate object of type '<class 'numpy.ndarray'>'; only Series and DataFrame objs are valid
那么对于这个问题,你会推荐什么样的修改呢? 现在看来,这两个数据帧的当前形式不兼容。
如果您希望它们“并排”,您可以执行以下操作:
df = pd.DataFrame(data=data)
df.columns = ["h", "b", "l", "t"]
# Adding new columns from variable y
df['f1'] = y[:,0]
df['f2'] = y[:,1]
# Quick check
df.head()
DataFrames 表示表格数据。 您可以将它们视为列列表,其中每列都有一个名称(f1、f2、h、b...),并且可以通过my_dataframe['column_name']
访问/修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.