将Dataframe转换为序列,反之亦然/从Serie或DataFrame中删除列

时间:2018-07-12 09:59:40

标签: python pandas dataframe

我正在尝试将此数据帧转换为一个序列或将该序列转换为一个数据帧(基本上一个转换为另一个),以便能够对其进行操作,我的第二个问题是要删除该数据帧的第一列下方的数据框(转换之前并没有关系),或者可以从系列中删除列。

我搜索了类似的问题,但与我的问题不符。

在此先感谢数据框和序列。

JOUR  FL_AB_PCOUP  FL_ABER_NEGA  FL_AB_PMAX  FL_AB_PSKVA  FL_TROU_PDC  \
    0 2018-07-09    -0.448787           0.0    1.498464    -0.197012     1.001577

       CDC_INCOMPLET_HORS_ABERRANTS  CDC_COMPLET_HORS_ABERRANTS  CDC_ABSENT  \
    0                     -0.729002                    -1.03586    1.032936

       CDC_ABERRANTS  PRM_X_PDC_ZERO  mean.msr.pdc  sd.msr.pdc  sum.msr.pdc  \
    0        1.49976       -0.497693     -1.243274   -1.111366     0.558516



FL_AB_PCOUP                     8.775974e-05
FL_ABER_NEGA                    0.000000e+00
FL_AB_PMAX                      1.865632e-03
FL_AB_PSKVA                     2.027215e-05
FL_TROU_PDC                     2.222952e-02
FL_AB_COMBI                     1.931156e-03
CDC_INCOMPLET_HORS_ABERRANTS    1.562195e-03
CDC_COMPLET_HORS_ABERRANTS      9.758743e-01
CDC_ABSENT                      2.063239e-02
CDC_ABERRANTS                   1.931156e-03
PRM_X_PDC_ZERO                  2.127753e+01
mean.msr.pdc                    1.125987e+03
sd.msr.pdc                      1.765955e+03
sum.msr.pdc                     3.310615e+08
n.resil                         3.884103e-04
dtype: float64

2 个答案:

答案 0 :(得分:2)

设置

df = pd.DataFrame({'B':[4,5,4,5,5,4],
                   'C':[7,8,9,4,2,3],
                   'D':[1,3,5,7,1,0],
                   'E':[5,3,6,9,2,4]})

print (df)
   B  C  D  E
0  4  7  1  5
1  5  8  3  3
2  4  9  5  6
3  5  4  7  9
4  5  2  1  2
5  4  3  0  4

用于DataFrameSeries选择,例如按位置按iloc或按索引名按loc

#select some row, e.g. first
s = df.iloc[0]
print (s)
B    4
C    7
D    1
E    5
Name: 0, dtype: int64

对于SeriesDataFrame,如有必要,请使用to_frame进行转置:

df = s.to_frame().T
print (df)
   B  C  D  E
0  4  7  1  5

最后DataFrame处的删除列使用DataFrame.drop

df = df.drop('B',axis=1)
print (df)
   C  D  E
0  7  1  5

Series中的值使用Series.drop

s = s.drop('C')
print (s)
B    4
D    1
E    5
Name: 0, dtype: int64

答案 1 :(得分:1)

您可以通过

删除特定的列
df.drop(df.columns[i], axis=1)

将数据框转换为系列

 pd.Series(df)