将数据框转换为特定格式的最佳方法是什么?

时间:2019-10-24 15:49:47

标签: python pandas dataframe append

我有一个类似的数据框

df_given =    B   D   X
           1  B1  D1  X1
           2  B2  D2  X2
           3  B3  D3  X3
           4  B4  D4  X4

我想把它变成

 df_want =    A   B   C   D
           1  0   B1  0   D1
           2  0   B2  0   D2
           3  0   B3  0   D3
           4  0   B4  0   D4

我的实际示例有数百列,因此我无法手动添加或删除列。 我试图从一个空的数据帧开始(我希望最后有一个数据帧),并从给定的数据帧追加行。但是

 df_want = pd.DataFrame(columns = ['A', 'B', 'C', 'D'])
 df_want.append(df_given)

给予

    A   B   C   D   X
 1  NaN B1  NaN D1  X1
 2  NaN B2  NaN D2  X2
 3  NaN B3  NaN D3  X3
 4  NaN B4  NaN D4  X4

NaN不是问题。像X这样的其他列。 反正这是正确的方法吗?

2 个答案:

答案 0 :(得分:0)

这里有一些代码可以重新排列列,删除列,添加列。

 const basePrice = 149.99;

 const checkPrice = () => {
  this.setState(({ propertySqft }) => { // asynchronous access to this.state is dangerous, use a callback!     
    const percentage = Math.max(
      0, // ensure that it only gets more 
      Math.floor((propertySqft - 2000) / 500) * (10 / 100)
    );

    return { totalPrice: basePrice * (1 + percentage),  };
  });
};

enter image description here

答案 1 :(得分:0)

IIUC,使用@ BEN.T建议的内容:

在哪里

print(df)

    B   D   X
1  B1  D1  X1
2  B2  D2  X2
3  B3  D3  X3
4  B4  D4  X4

使用重新索引,

df.reindex([*'ABCD'], axis=1, fill_value=0)

输出:

   A   B  C   D
1  0  B1  0  D1
2  0  B2  0  D2
3  0  B3  0  D3
4  0  B4  0  D4