当我用另一个数据集屏蔽我的数据集时,它显示了一个UserWarning: Boolean Series key将被重新索引以匹配DataFrame索引。我该如何避免这种情况呢?Python会自动为它重新建立索引,但是该列的标题是空的,而且我似乎不能重命名它,所以我可以在代码中引用该列。我也不喜欢依赖这种隐含的修正。
我尝试用两种方式手动重命名这些列: pd.DataFrame.columns()或pd.DataFrame.rename()。由于某种原因,我得到一个错误,它需要3个元素,而不是4个,或者添加的空列索引不会被重命名。
# select data and filter it which results in the error which fixes the dataframe but leaves the column name empty
stickData = data[['Time','Pitch Stick Position(IN)','Roll Stick Position (IN)']]
filteredData = stickData[contactData['CONTACT'] == 1]
# moving forward from the error I tried using rename which does not error but also does nothing
filteredData.rename(index={0:'Index'})
# I also tried this
filteredData.rename(index={'':'Old_Index'})
# I even went and tried to add the names of the dataframe like so which resulted in ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements
filteredData.columns = ['Old_Index','Time','Pitch Stick Position(IN)','Roll Stick Position (IN)']
经过python的隐式校正后,filteredData.head()的当前数据帧如下所示:
Index Time Pitch Stick Position(IN) Roll Stick Position (IN)
0 1421 240:19:06:40.200 0.007263 -0.028500
1 1422 240:19:06:40.400 0.022327 0.139893
2 1423 240:19:06:40.600 -0.016409 0.540756
3 1424 240:19:06:40.800 -0.199329 0.279971
4 1425 240:19:06:41.000 0.013719 -0.018069
但我希望在不依赖隐式校正的情况下,显示带有Old_index标签的内容:
Index Old_index Time Pitch Stick Position(IN) Roll Stick Position (IN)
1 1421 240:19:06:40.200 0.007263 -0.028500
2 1422 240:19:06:40.400 0.022327 0.139893
3 1423 240:19:06:40.600 -0.016409 0.540756
4 1424 240:19:06:40.800 -0.199329 0.279971
5 1425 240:19:06:41.000 0.013719 -0.018069
发布于 2018-12-20 08:12:49
你能不能试试:
filteredData = stickData[contactData['CONTACT'] == 1].reset_index().rename(columns={'index': 'Old_index')
或者把这块放在什么地方,我没有你的样本数据,我不能测试它
.reset_index().rename(columns={'index': 'Old_index')
https://stackoverflow.com/questions/53856748
复制相似问题