擅长:python、mysql、java
<p>代码中有两个for循环,您在第一个循环中初始化dataframe,这会导致您的情况,即为每个实例生成一个新的dataframe。您需要在第一个循环之前或在第一个循环之外初始化数据帧以获得单个数据帧</p>
<p>以下是更正后的代码:</p>
<pre><code>df_rows = []
# first for loop
for instance in vcenter:
try:
c = SmartConnect(host=instance, user=userid, pwd=p, sslContext=s)
except Exception as e:
print(e)
continue
content = c.content
obj_ds = content.viewManager.CreateContainerView(content.rootFolder,[vim.Datastore],True)
# List for storing single row data
row = []
# second for loop
for z in obj_ds.view:
row.append(instance)
row.append(z)
row.append(int(z.summary.capacity/(1024*1024*1024)))
row.append(int(z.summary.freeSpace/(1024*1024*1024)))
df_rows.append(row)
df = pd.DataFrame(df_rows, columns=['A', 'B', 'C', 'D'])
print(df)
</code></pre>
<p>希望这有所帮助</p>