[英]Data-frame manipulation in python
我有一個csv文件,其中包含a和b兩列,如下所示:
a b
601 1
602 2
603 3
604 4
605 5
606 6
我想讀取數據並將其保存在新的csv文件中,如下所示:
s id
601 1
602 1
603 1
604 2
605 2
606 2
我已經試過這段代碼:
data=pd.read_csv('./dataset/test4.csv')
list=[]
i=0
while(i<6):
list.append(data['a'].iloc[i:i+3])
i+=3
df = pd.DataFrame(list)
print(df)
通過這個輸出:
0 1 2 3 4 5
a 601.0 602.0 603.0 NaN NaN NaN
a NaN NaN NaN 604.0 605.0 606.0
首先,我需要將列表保存在數據框中,結果如下:
0 1 2 3 4 5
601.0 602.0 603.0 604.0 605.0 606.0
然后保存在一個csv文件中。 但是,我陷入了第一部分。
謝謝你的幫助。
假設在每3項a
構成一組中的b
,只是做所述索引一點整數除法。
data['b'] = (data.index // 3 + 1)
data
a b
0 601 1
1 602 1
2 603 1
3 604 2
4 605 2
5 606 2
保存為CSV很簡單-您要做的就是調用df.to_csv(...)
。
只要您具有單調遞增的整數索引,就可以按索引進行除法。 否則,您可以使用np.arange
(根據MaxU的建議):
data['b'] = np.arange(len(data)) // 3 + 1
data
a b
0 601 1
1 602 1
2 603 1
3 604 2
4 605 2
5 606 2
通過使用您的輸出
df.stack().unstack()
Out[115]:
0 1 2 3 4 5
a 601.0 602.0 603.0 604.0 605.0 606.0
數據輸入
df
0 1 2 3 4 5
a 601.0 602.0 603.0 NaN NaN NaN
a NaN NaN NaN 604.0 605.0 606.0
In [45]: df[['a']].T
Out[45]:
0 1 2 3 4 5
a 601 602 603 604 605 606
要么
In [39]: df.set_index('b').T.rename_axis(None, axis=1)
Out[39]:
1 2 3 4 5 6
a 601 602 603 604 605 606
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.