[英]Move every 2nd and 3rd row to the end of the 1st row
我不太確定如何解釋這一點,但我有一個電子表格,我將它拉入 python 中,沒有標題,並且與每個唯一 ID 相關的數據分組為三行,因此此時的列並不真正意味着讀取任何內容,直到它“變平”。 格式是一致的,但我很難弄清楚我需要搜索什么才能獲得我正在尋找的輸出。
如果這是在 Excel 中,我基本上會將第 2 行和第 3 行復制到第 1 行的右側,然后刪除第 2 行和第 3 行並重復,直到到達工作表的底部。
這就是我接收數據的方式
id1 criteria1 criteria2 criteria3
criteria4 criteria5 criteria6 criteria7
criteria8 criteria9 criteria10 criteria11
id2 criteria1 criteria2 criteria3
criteria4 criteria5 criteria6 criteria7
criteria8 criteria9 criteria10 criteria11
id3 criteria1 criteria2 criteria3
criteria4 criteria5 criteria6 criteria7
criteria8 criteria9 criteria10 criteria11
這就是我想要實現的目標
id1 criteria1 criteria2 criteria3 criteria4 criteria5 criteria6 criteria7 criteria8 criteria9 criteria10 criteria11
id2 criteria1 criteria2 criteria3 criteria4 criteria5 criteria6 criteria7 criteria8 criteria9 criteria10 criteria11
id3 criteria1 criteria2 criteria3 criteria4 criteria5 criteria6 criteria7 criteria8 criteria9 criteria10 criteria11
看看這是否能讓你走上正軌。 警告:鑒於源數據的含糊不清(如評論中所述),很難提供完整的解決方案……但請試一試。
使用您的示例輸入,我將其轉換為一個簡單的 CSV 文件。
id1,criteria1,criteria2,criteria3
criteria4,criteria5,criteria6,criteria7
criteria8,criteria9,criteria10,criteria11
id2,criteria1,criteria2,criteria3
criteria4,criteria5,criteria6,criteria7
criteria8,criteria9,criteria10,criteria11
id3,criteria1,criteria2,criteria3
criteria4,criteria5,criteria6,criteria7
criteria8,criteria9,criteria10,criteria11
注意: [3, 12]
(或[rows, columns]
)的 reshape 值需要根據輸入數據的形狀進行修改。
import pandas as pd
array = pd.read_csv('folded.csv', header=None).to_numpy().reshape([3, 12])
pd.DataFrame(array).to_csv('unfolded.csv', index=False, header=False)
id1,criteria1,criteria2,criteria3,criteria4,criteria5,criteria6,criteria7,criteria8,criteria9,criteria10,criteria11
id2,criteria1,criteria2,criteria3,criteria4,criteria5,criteria6,criteria7,criteria8,criteria9,criteria10,criteria11
id3,criteria1,criteria2,criteria3,criteria4,criteria5,criteria6,criteria7,criteria8,criteria9,criteria10,criteria11
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.