簡體   English   中英

python中的數據幀操作

[英]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.

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