如何移动多列? Pandas,Python

时间:2017-11-25 21:05:04

标签: python pandas

为简单起见,假设我有这个数据帧。

Date           Open    Close
2016-01-01     100     129
2016-01-02     198     193
2016-01-03     103     102
2016-01-04     102     109

我无法说明所有列名称,因为它们太多了。那么如何移除所有列除了其中两个(Date& Close)?我想将除(Date& Close)之外的所有列移回一行。

Date           Open    Close
2016-01-01     198     129
2016-01-02     103     193
2016-01-03     102     102
2016-01-04     NaN     109

1 个答案:

答案 0 :(得分:5)

你可以这样做,为要排除的列创建一个掩码:

Xyt::ByteArray::ByteArray(std::vector<char> Buffer)
{
    this->Buffer = std::move(Buffer);
}

OR

mask = ~(df.columns.isin(['Date','Close']))

cols_to_shift = df.columns[mask]

df[cols_to_shift] = df.loc[:,mask].shift(-1)

输出:

df[cols_to_shift] = df[cols_to_shift].shift(-1)