<p>在阅读了您的文章和代码块之后,我看不到操作的太多范围。我想改变它如下,这将提供理想的结果。然而,我在代码审查上看到了类似的帖子</p>
<p>1-您应该选择所需的列,这将减少处理负担和灵活性,您可以使用<code>usecols</code></p>
<p>2-您可以将<code>df.assign</code>与Dict一起使用,Dict将基于<code>Keys, values</code>从两个集合创建一个Dict,这将通过拆分<code>,</code>创建两个不同的列,因此您可以执行<code>split</code>,<code>rename</code>&<code>drop</code>一次性行动</p>
<p>它将如下所示,这应该是可行的</p>
<pre><code>import pandas as pd
##### Pandas setting in case you want to visualize them on the screen. ####
#pd.set_option('display.height', None)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('expand_frame_repr', True)
##################### END OF THE Display Settings ###################
# usecols is supposed to provide a filter before reading the whole DataFrame
# into memory; if used properly, there should never be a need to delete columns
# after reading.
df = pd.read_csv("testcreate.csv",
usecols=['Server',
'Server Name',
'Appliance Name'
]
)
df1 = df.assign(**dict
(zip
('xy',
df.Server.str.split(',')
.str
)
)
).rename(columns=
{'x': 'Enclosure',
'y': 'Bay'
}
).drop(['Server'], axis=1)
df1 = df1[
df1['Appliance Name']
.str.contains('C7000')
]
df1['Server Name'] = df1['Server Name'].str.split('.').str[0].str.lower()
df1['Enclosure'] = df1['Enclosure'].str.upper()
df1 = pd.pivot(df1,
values='Server Name',
index='Bay',
columns='Enclosure'
).rename_axis(None)
df1.to_csv("YourCsvFileName.csv")
# Print(df1)
</code></pre>