自分の列のPythonの中に複数の列内の行を移動します

Bystrov_2108:

私は私が分析するために簡単にそれを作るために周りにシフトするために必要な購入データについてのデータフレームを持っています。これまでのところ、それは次のようになります。

「」」

df = 

  | customers bid/offer price  volume
 0| 28        B         95     1200
 1| 1         O         78     6
 2| SOA       IFILL     May20  F
 3| 15        B         99     3
 4| 18        O         60     3
 5| 120       B         40     70
 6| FAL       TGAL      May20  F

iは現在の列から引き出さおよびそれらの関連するレコードの横独自の列に上に移動しているためにそれらを必要とするので、インデックス2及び6の行上記の例のテーブルに上記レコードに関する特定の項目のデータを表します。だから私はこのようなルックスに理想的なデータフレームが必要になります。

「」」

df =

 | customers bid/offer price volume shopCode itemCode date  Type
0| 28        B         95    1200   SOA      IFILL    May20 F
1| 1         O         78    6      SOA      IFILL    May20 F
2| 15        B         99    3      FAL      TGAL     May20 F
3| 18        O         60    3      FAL      TGAL     May20 F
4| 120       B         40    70     FAL      TGAL     May20 F
エズレル:

データがで一つの非数値列により分割さ最初の数値列がある場合ワーキングソリューションprice列を:

#for correct default RangeIndex
df = df.reset_index(drop=True)

#test numeric rows
m = df['price'].str.isnumeric()
#join together with removed 1 from index for correct match
df1 = pd.concat([df[m], df[~m].rename(lambda x: x-1)], axis=1)
#set correct columns names
L = ['shopCode','itemCode','date','Type']
df1.columns = df.columns.tolist() + L
#back filling missing values
df1[L] = df1[L].bfill()
print (df1)
  customers bid/offer price volume shopCode itemCode   date Type
0        28         B    95   1200      SOA    IFILL  May20    F
1         1         O    78      6      SOA    IFILL  May20    F
3        15         B    99      3      FAL     TGAL  May20    F
4        18         O    60      3      FAL     TGAL  May20    F
5       120         B    40     70      FAL     TGAL  May20    F

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=320432&siteId=1