簡體   English   中英

將 pandas DataFrame 重新格式化為正式的 1nf

[英]Reformat pandas DataFrame into a formal 1nf

如果我有這樣一個 DataFrame 以前由電子表格程序制作的

多變的 日期 A C
值 1
14.08. 21:00 1個 123 3個
07.08. 21:00 2個 321 1個
值2
01.08. 20:00 1個 132 2個

然后我需要在一段代碼中將它轉換為 1nf 形式的數據庫,看起來像這樣

多變的 日期 A C
值 1 14.08. 21:00 1個 123 3個
值 1 07.08. 21:00 2個 321 1個
值2 01.08. 20:00 1個 132 2個

我試圖在這段代碼中完成這樣的工作

def normalize(Series):
    x=""
    for value in Series:
        if pd.notna(value): 
            x=value
        elif pd.isnull(value):
            value=x
normalize(df['Variable'])

因此,如果單元格的值不是 null,它會遍歷該系列,然后它將值保存到一個變量中,以便在每次出現 null 時插入它,然后取另一個值,依此類推,然后我可以執行df.dropna()到刪除僅包含變量值的行作為 header 並僅保留數據

但它似乎有點問題它要么不會更改df['variable']中的任何內容,要么將其所有值更改為None這兩者都不是我想要的

有誰知道該怎么做?

嘗試使用ffill()dropna()

df["Variable"] = df["Variable"].ffill()
df = df.dropna()

>>> df
  Variable          Date    A      B    C
1   Value1  14.08. 21:00  1.0  123.0  3.0
2   Value1  07.08. 21:00  2.0  321.0  1.0
4   Value2  01.08. 20:00  1.0  132.0  2.0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM