使用整数值

时间:2016-01-14 07:29:53

标签: python pandas concat series

我有两个大熊猫系列如下。

bulk_order_id
Out[283]: 
3    523
Name: order_id, dtype: object

luster_6_loc
Out[285]: 
3    Cluster 3
Name: Clusters, dtype: object

现在我想要一个看起来像这样的新系列。

Cluster 3  523

我正在python中执行以下操作

cluster_final = pd.Series()
for i in range(len(cluster_6_loc)):
    cluster_final.append(pd.Series(bulk_order_id.values[i], index =  
    cluster_6_loc.iloc[i]))

这给了我一个错误说

TypeError: Index(...) must be called with a collection of some kind, 'Cluster 3' was passed

3 个答案:

答案 0 :(得分:1)

您可以将pd.Series的{​​{1}}值作为索引,将luster_6_loc的值作为值传递:

bulk_order_id

修改

这很奇怪但似乎bulk_order_id = pd.Series(523, index=[3]) cluster_6_loc= pd.Series('Cluster 3', index=[3]) cluster_final = pd.Series(bulk_order_id.values, cluster_6_loc.values) In [149]: cluster_final Out[149]: Cluster 3 523 dtype: int64 append无法正常工作(至少在版本Series中):

0.17.1

顺便说一句,你可以做s = pd.Series() In [199]: s.append(pd.Series(1, index=[0])) Out[199]: 0 1 dtype: int64 In [200]: s Out[200]: Series([], dtype: float64)

set_value

答案 1 :(得分:1)

使用concatset_index时可能更好:

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
req.Timeout = 1200000;
req.ReadWriteTimeout = 1200000;
var w = (HttpWebResponse)req.GetResponse();

using (Stream file = File.OpenWrite(localFile))
{
    w.GetResponseStream().CopyTo(file);
}

答案 2 :(得分:0)

不确定我是否正确理解了您的问题,但pd.concat()see docs)出了什么问题:

s1 = pd.Series(data=['523'], index=[3])

3    523
dtype: object

s2 = pd.Series(data=['Cluster 3'], index=[3])

3    Cluster 3
dtype: object

并使用pd.concat(),这也适用于多个值:

pd.concat([s1, s2], axis=1)

     0          1
3  523  Cluster 3

导致DataFrame,这是将Series与多个值组合时可能需要的。您可以使用values将任意index移至.set_index(),或添加.squeeze()以获得Series

所以pd.concat([s1, s2], axis=1).set_index(1)给出了:

             0
1             
Cluster 3  523