【问题标题】:Removing a tab every nth column from pandas df从 pandas df 中每隔 n 列删除一个选项卡
【发布时间】:2018-06-01 20:09:01
【问题描述】:

我正在尝试访问我从两个列表中创建的数据框的列并进行一些过滤。但是,我的数据框中的每 12 个元素似乎都有一个额外的空间。我该如何处理?

import pandas as pd

df = pd.DataFrame(
    {'S': s,
     'K': k})

我用上面的代码创建了数据框。此外,由于某些奇怪的原因,它以浮点类型存储在科学计数法中。在我真正弄清楚问题所在之前,我使用了 df.round(4)。


KeyError                                  Traceback (most recent call last)
<ipython-input-14-2e289598b460> in <module>()
----> 1 df[df['S']]

~\Anaconda\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
   1956         if isinstance(key, (Series, np.ndarray, Index, list)):
   1957             # either boolean or fancy integer index
-> 1958             return self._getitem_array(key)
   1959         elif isinstance(key, DataFrame):
   1960             return self._getitem_frame(key)

~\Anaconda\lib\site-packages\pandas\core\frame.py in _getitem_array(self, key)
   2000             return self.take(indexer, axis=0, convert=False)
   2001         else:
-> 2002             indexer = self.loc._convert_to_indexer(key, axis=1)
   2003             return self.take(indexer, axis=1, convert=True)
   2004 

~\Anaconda\lib\site-packages\pandas\core\indexing.py in _convert_to_indexer(self, obj, axis, is_setter)
   1229                 mask = check == -1
   1230                 if mask.any():
-> 1231                     raise KeyError('%s not in index' % objarr[mask])
   1232 
   1233                 return _values_from_object(indexer)

KeyError: '[-0.65 -0.6  -0.6  -0.6  -0.55 -0.55 -0.55 -0.55 -0.55 -0.55 -0.5  -0.5\n -0.5  -0.5  -0.5  -0.5  -0.5  -0.5  -0.45 -0.45 -0.45 -0.45 -0.45 -0.45\n -0.45 -0.45 -0.45 -0.45 -0.4  -0.4  -0.4  -0.4  -0.4  -0.4  -0.4  -0.4\n -0.4  -0.4  -0.4  -0.4  -0.35 -0.35 -0.35 -0.35 -0.35 -0.35 -0.35 -0.35\n -0.35 -0.35 -0.35 -0.35 -0.35 -0.35 -0.3  -0.3  -0.3  -0.3  -0.3  -0.3\n -0.3  -0.3  -0.3  -0.3  -0.3  -0.3  -0.3  -0.3  -0.3  -0.3  -0.25 -0.25\n -0.25 -0.25 -0.25 -0.25 -0.25 -0.25 -0.25 -0.25 -0.25 -0.25 -0.25 -0.25\n -0.25 -0.25 -0.25 -0.25 -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.2\n -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.2  -0.15\n -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15\n -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.15 -0.1  -0.1  -0.1  -0.1  -0.1\n -0.1  -0.1  -0.1  -0.1  -0.1  -0.1  -0.1  -0.1  -0.1  -0.1  -0.1  -0.1\n -0.1  -0.1  -0.1  -0.1  -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05\n -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05 -0.05\n -0.05 -0.05  0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.\n  0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.    0.\n  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05\n  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05  0.05\n  0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1\n  0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1   0.1\n  0.1   0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15\n  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15  0.15\n  0.15  0.15  0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2\n  0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2   0.2\n  0.2   0.2   0.2   0.25  0.25  0.25  0.25  0.25  0.25  0.25  0.25  0.25\n  0.25  0.25  0.25  0.25  0.25  0.25  0.25  0.25  0.25  0.25  0.25  0.25\n  0.25  0.25  0.25  0.25  0.25  0.3   0.3   0.3   0.3   0.3   0.3   0.3\n  0.3   0.3   0.3   0.3   0.3   0.3   0.3   0.3   0.3   0.3   0.3   0.3\n  0.3   0.3   0.3   0.3   0.3   0.3   0.35  0.35  0.35  0.35  0.35  0.35\n  0.35  0.35  0.35  0.35  0.35  0.35  0.35  0.35  0.35  0.35  0.35  0.35\n  0.35  0.35  0.35  0.35  0.35  0.35  0.35  0.4   0.4   0.4   0.4   0.4\n  0.4   0.4   0.4   0.4   0.4   0.4   0.4   0.4   0.4   0.4   0.4   0.4\n  0.4   0.4   0.4   0.4   0.4   0.4   0.4   0.4   0.45  0.45  0.45  0.45\n  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.45\n  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.45  0.5   0.5   0.5\n  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5\n  0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.5   0.55  0.55  0.55\n  0.55  0.55  0.55  0.55  0.55  0.55  0.55  0.55  0.55  0.55  0.55  0.55\n  0.55  0.55  0.55  0.55  0.55  0.55  0.55  0.55  0.6   0.6   0.6   0.6\n  0.6   0.6   0.6   0.6   0.6   0.6   0.6   0.6   0.6   0.6   0.6   0.6\n  0.6   0.6   0.6   0.6   0.6   0.6   0.65  0.65  0.65  0.65  0.65  0.65\n  0.65  0.65  0.65  0.65  0.65  0.65  0.65  0.65  0.65  0.65  0.65  0.65\n  0.65  0.65  0.65  0.7   0.7   0.7   0.7   0.7   0.7   0.7   0.7   0.7\n  0.7   0.7   0.7   0.7   0.7   0.7   0.7   0.7   0.7   0.7   0.7   0.75\n  0.75  0.75  0.75  0.75  0.75  0.75  0.75  0.75  0.75  0.75  0.75  0.75\n  0.75  0.75  0.75  0.75  0.75  0.8   0.8   0.8   0.8   0.8   0.8   0.8\n  0.8   0.8   0.8   0.8   0.8   0.8   0.8   0.8   0.8   0.8   0.85  0.85\n  0.85  0.85  0.85  0.85  0.85  0.85  0.85  0.85  0.85  0.85  0.85  0.85\n  0.85  0.9   0.9   0.9   0.9   0.9   0.9   0.9   0.9   0.9   0.9   0.9\n  0.9   0.9   0.95  0.95  0.95  0.95  0.95  0.95  0.95  0.95  0.95  0.95\n  0.95  1.    1.    1.    1.    1.    1.    1.    1.    1.    1.05  1.05\n  1.05  1.05  1.05  1.05  1.1   1.1   1.1   1.1   1.15  1.3   1.3   1.3\n  1.3   1.3   1.35  1.35  1.35  1.35  1.35  1.35  1.35  1.35  1.35  1.35\n  1.4   1.4   1.4   1.4   1.4   1.4   1.4   1.4   1.4   1.4   1.4   1.4\n  1.45  1.45  1.45  1.45  1.45  1.45  1.45  1.45  1.45  1.45  1.45  1.45\n  1.45  1.45  1.45  1.45  1.45] not in index'

【问题讨论】:

  • 这些空格是否已经在您的列表中?您是如何创建这两个列表的?
  • 打印出来的列表中没有空格。列表的生成有点复杂。它们是使用 for 循环生成的,并在几个列表中查找某些条件,并且仅当列表的元素通过这些条件时才附加。
  • 您能分享一下您是如何创建数据框的吗?
  • 我编辑了我的帖子。

标签: python python-3.x pandas dataframe


【解决方案1】:

您可以尝试删除S 中的每个\n,如下所示:

df["S"] = df["S"].apply(lambda x: float(str(x).replace("\n", "")))

但顺便说一句:df[df["S"]] 将在索引中查找S 的值。随着您构建数据框,索引中可能不会有任何 S 值。

【讨论】:

  • 试试df[df["S"] == 0.65]
  • 我的错!这就是我尝试过的。它返回一个空的df
  • 数据框在上面的链接中。基本上,我想在每个 s 值处找到 k 的最小值。
  • df["S"]现在是什么数据类型?
猜你喜欢
  • 2022-11-26
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
  • 1970-01-01
  • 2021-11-04
相关资源
最近更新 更多