【问题标题】:Shift a pandas DataFrame from a certain column从某个列移动熊猫数据框
【发布时间】:2020-03-05 15:59:31
【问题描述】:

我正在尝试操作 Pandas DataFrame。请参阅下面的 Pandas 数据框:

如果缺少第 6 列,我正在尝试从第 6 列移动 1 个句点。

这是一个想法:

tarrif_6_missing = df2[6].isnull()
df2[tarrif_6_missing] = df2[tarrif_6_missing].shift(1,axis=1)

以上内容不正确,因为它从列的开头移动了整个单元格。相反,如果缺少第 6 列。我想从第 6 列而不是从列的开头将列移动 1 的周期。

编辑:感谢您的编辑,但我正在通过,收到错误:

tarrif_6_missing = df2.loc[:,6].isnull()
df2.loc[:,tarrif_6_missing:] = df.loc[:,tarrif_6_missing:].shift(1, axis=1)

我收到一个错误:TypeError: '0 False

它没有通过

【问题讨论】:

  • 如果您还可以提供一个示例,说明您希望结果是什么样的,我会很有用。 “偏移 1 个周期”是指向下还是向上,即,您是在填充孔还是将孔加长?
  • 先是索引,然后是列,即loc[tarrif_6_missing, column_6_name:] = ...

标签: python pandas dataframe data-manipulation shift


【解决方案1】:

您可以使用 .loc[] 来选择数据帧的一个子部分以像这样移动:

 df.loc[:,column_index:]=df.loc[:,column_index:].shift(1, axis=1)

【讨论】:

  • 我收到一个错误:df2[tarrif_6_missing] tarrif_6_missing = df2.loc[:,6].isnull() df2.loc[:,tarrif_6_missing:] = df.loc[:,tarrif_6_missing: ].shift(1,axis=1)
  • df.loc[tarrif6missing,6]=df.loc[tarrif6missing,6].shift(1, axis=1) 我认为
  • 可能在这里无关紧要,但是一旦我在尝试水平移动时遇到奇怪的错误,而df.T.shift(1).T 工作得很好。仅供参考。
猜你喜欢
  • 2016-05-21
  • 1970-01-01
  • 2016-07-30
  • 1970-01-01
  • 2019-03-08
  • 2020-06-03
  • 1970-01-01
  • 2020-09-21
  • 2018-12-13
相关资源
最近更新 更多