簡體   English   中英

如何在 DataFrame 中創建新列並將 select 數據從第一列移動到新列

[英]How to create a new column in a DataFrame and move select data from the first column to the new column

我的 dataframe 是 860x1,我想創建一個新列,將數據從第一列轉移到第二列。

例子:

      Lyrics
0.    name
1.    lyric
2.    name
3.    lyric
4.    name
5.    lyric

我需要的是:

      Lyrics     Title
0.    lyric      name
1.    lyric      name
2.    lyric      name
3.    lyric      name

奇數索引號是歌詞,偶數是名稱。 如何使用 pandas 將名稱移動到新列?

使用切片索引以 0 或 1 作為從開始的偏移量獲取每隔一行:

df = pd.DataFrame()
df['Lyrics'] = lyrics.iloc[1::2].reset_index(drop=True)
df['Title'] = lyrics.iloc[0::2].reset_index(drop=True)
pd.DataFrame(df.to_numpy().reshape(-1,2))[[1,0]].rename(columns={1:"Lyrics", 0:"Title"})

一個有趣的點:)

  1. 我的代碼時間: 1.81 ms ± 480
  2. BENY 的編碼時間: 2.66 ms ± 741 µs
  3. creanion 的編碼時間: 1.99 ms ± 578 µs

運行 10,000 行的數據

讓我們試試groupby

out = pd.concat([y.reset_index(drop=True) for _ , y in df.groupby(df.index%2)['Lyrics']],axis=1,keys= ['Title','Lyrics'])
Out[49]: 
  Title Lyrics
0  name  lyric
1  name  lyric
2  name  lyric

暫無
暫無

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

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