繁体   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