<p>这是基于@xyzxyzjayne的答案,但我有两个问题无法解决</p>
<h2>第一期</h2>
<p>我是否收到此警告:(请参见编辑)</p>
<pre><code>SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
</code></pre>
<p><a href="https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy" rel="nofollow noreferrer">Documentation for this warning</a></p>
<p>您将在下面的代码中看到,我试图输入.loc,但似乎无法找到如何通过正确使用.loc消除此警告。还在学呢。不,我不会忽略它,即使它有效。我说这是一个学习的机会</p>
<h2>第二期</h2>
<p>我不理解这部分代码。我知道左边应该是行,右边是列。也就是说,这为什么有效?当此代码为符文时,ID是列而不是行。我的身份证是:</p>
<pre><code>df.loc[~df["ID "].isin(uniqueID ), "ID "] = df.loc[~df["ID "].isin(uniqueID ), "Place Holder"]
</code></pre>
<p>我还不明白的区域是这部分逗号(,)的左侧:</p>
<pre><code>df.loc[~df["ID "].isin(uniqueID), "ID "]
</code></pre>
<p>这里说的是最终结果,基本上就像我说的,是XZY的帮助让我来到这里,但我正在添加更多的.loc并处理文档,直到我可以消除警告为止</p>
<pre><code> uniqueID = [ and whole list of IDs i had to manually enter 1000+ entries that
will go in the below code. These ids get skipped. example: "032-234-987_#4256"]
# gets the columns i need to make the DateFrame smaller
df = df[['ID ', 'Street #', 'Street Name', 'Debris Finish', 'Number of Vehicles',
'Number of Vehicles Removed', 'County']]
#Place holder will make our new column with this filter
df.loc[:, "Place Holder"] = df.loc[:,"ID "].str.replace("-", "").str[:9]
#the next code is the filter that goes through the list and skips them. Work in progress to fully understand.
df.loc[~df["ID "].isin(uniqueID ), "ID "] = df.loc[~df["ID "].isin(uniqueID ), "Place Holder"]
#Makes the ID our index
df = df.set_index("ID ")
#just here to add the date to our file name. Must import time for this to work
todaysDate = time.strftime("%m-%d-%y")
#make it an excel file
df.to_excel("ID TEXT " + todaysDate + ".xlsx")
</code></pre>
<p>一旦我消除了警告,我会编辑这篇文章,找出左边,这样我就可以为每个需要/看到这篇文章的人解释</p>
<h2>编辑:使用CopyWarning设置:</h2>
<p>修复了这个链接索引问题,在筛选之前复制原始数据库,并制作everthing.loc as XYZ帮助我解决了这个问题。在开始筛选之前,请使用DataFrame.copy(),其中DataFrame是您自己的DataFrame的名称</p>