亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 Python Pandas 數據框中的每行下添加 24 行

如何在 Python Pandas 數據框中的每行下添加 24 行

九州編程 2022-06-28 10:29:14
原始數據框:a1 a2 a3 a4 a5 a6b1 b2 b3 b4 b5 b6新數據框:a1 a2 a3 a4 a5 a6(第 1 個空行)(第 2 個空行)...(第 24 個空行)b1 b2 b3 b4 b5 b6(第一個空行)(第 2 個空行)...(第 24 個空行)問題是:如何進行上述轉換?非常感謝。
查看完整描述

2 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

利用:


print (df)

    0   1   2   3   4   5

0  a1  a2  a3  a4  a5  a6

1  b1  b2  b3  b4  b5  b6

按重復值的數量首先使用多個索引值,然后使用DataFrame.reindexwith np.arange:


N = 5

df.index = df.index * (N + 1)

df = df.reindex(np.arange(df.index.max() + N + 1))

print (df)

      0    1    2    3    4    5

0    a1   a2   a3   a4   a5   a6

1   NaN  NaN  NaN  NaN  NaN  NaN

2   NaN  NaN  NaN  NaN  NaN  NaN

3   NaN  NaN  NaN  NaN  NaN  NaN

4   NaN  NaN  NaN  NaN  NaN  NaN

5   NaN  NaN  NaN  NaN  NaN  NaN

6    b1   b2   b3   b4   b5   b6

7   NaN  NaN  NaN  NaN  NaN  NaN

8   NaN  NaN  NaN  NaN  NaN  NaN

9   NaN  NaN  NaN  NaN  NaN  NaN

10  NaN  NaN  NaN  NaN  NaN  NaN

11  NaN  NaN  NaN  NaN  NaN  NaN

編輯:


print (df)

    0  1   2   3   4  5

0  a1  2  a3  a4  a5  6

1  b1  2  b3  b4  b5  6

N = 5

df.index = df.index * (N + 1)

df = df.reindex(np.arange(df.index.max() + N + 1))

print (df)

      0    1    2    3    4    5

0    a1  2.0   a3   a4   a5  6.0

1   NaN  NaN  NaN  NaN  NaN  NaN

2   NaN  NaN  NaN  NaN  NaN  NaN

3   NaN  NaN  NaN  NaN  NaN  NaN

4   NaN  NaN  NaN  NaN  NaN  NaN

5   NaN  NaN  NaN  NaN  NaN  NaN

6    b1  2.0   b3   b4   b5  6.0

7   NaN  NaN  NaN  NaN  NaN  NaN

8   NaN  NaN  NaN  NaN  NaN  NaN

9   NaN  NaN  NaN  NaN  NaN  NaN

10  NaN  NaN  NaN  NaN  NaN  NaN

11  NaN  NaN  NaN  NaN  NaN  NaN

def convert_int_with_NaNs(x):

    try:

        return x.astype('Int64')

    except Exception:

        return x


df = df.apply(convert_int_with_NaNs)

print (df)

      0    1    2    3    4    5

0    a1    2   a3   a4   a5    6

1   NaN  NaN  NaN  NaN  NaN  NaN

2   NaN  NaN  NaN  NaN  NaN  NaN

3   NaN  NaN  NaN  NaN  NaN  NaN

4   NaN  NaN  NaN  NaN  NaN  NaN

5   NaN  NaN  NaN  NaN  NaN  NaN

6    b1    2   b3   b4   b5    6

7   NaN  NaN  NaN  NaN  NaN  NaN

8   NaN  NaN  NaN  NaN  NaN  NaN

9   NaN  NaN  NaN  NaN  NaN  NaN

10  NaN  NaN  NaN  NaN  NaN  NaN

11  NaN  NaN  NaN  NaN  NaN  NaN


查看完整回答
反對 回復 2022-06-28
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

為了添加一個空行,您可以使用以下指令:


your_dataframe = your_dataframe.append({} , ignore_index=True)


要執行請求的轉換,因為我不知道您的數據是如何形成的,也不知道它是如何被索引的,我建議您創建一個新的空數據框。


對于您的每個初始數據框條目,您應該將其插入到您的新條目中,并按照我的描述追加 24 次空行。


這是有關如何執行它的示例:


## Use your own data instead

data = [['a1', 'a2', 'a3', 'a4', 'a5', 'a6'],['b1', 'b2', 'b3', 'b4', 'b5', 'b6']]

### Load the data in the dataframe

df = pd.DataFrame(data)


## Create the empty dataframe

df2 = pd.DataFrame()


## Use the initial dataframe length to perform the row iteration

length = len(df.index)


## For each rows of the initial dataframe

for i in range(0, length):

    ## Append the current row to the new dataframe

    df2 = df2.append(df[i:i+1],ignore_index=True) 

    ## Adding 24 empty rows

    for j in range(0,25):

        df2 = df2.append({},ignore_index=True)

因此,如果您的初始數據框類似于:


    0   1   2   3   4   5

0  a1  a2  a3  a4  a5  a6

1  b1  b2  b3  b4  b5  b6

執行腳本后,它會輸出:


      0    1    2    3    4    5

0    a1   a2   a3   a4   a5   a6

1   NaN  NaN  NaN  NaN  NaN  NaN

2   NaN  NaN  NaN  NaN  NaN  NaN

3   NaN  NaN  NaN  NaN  NaN  NaN

...

25  NaN  NaN  NaN  NaN  NaN  NaN

26   b1   b2   b3   b4   b5   b6

27  NaN  NaN  NaN  NaN  NaN  NaN

...

49  NaN  NaN  NaN  NaN  NaN  NaN

50  NaN  NaN  NaN  NaN  NaN  NaN

51  NaN  NaN  NaN  NaN  NaN  NaN


查看完整回答
反對 回復 2022-06-28
  • 2 回答
  • 0 關注
  • 236 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號