熊猫将行元素合二为一

时间:2015-02-19 16:03:13

标签: python pandas

我有一个由CSV填充的Pandas Dataframe,然后我读取列并按行中的元素迭代(对于列中的每个元素)并将该元素写入文件中。我的问题是我在行中有要加入一个元素的元素。

假设我有A到Z列,让我们说它的元素是1到23.假设我想在一个元素中加入数字9和10(第I列和第J列)(第I列和第J列成为1它的值变为[9,10])

如何使用pandas(迭代时)实现这一目标?

我的代码很长,但您可以找到它here。我试过groupby但我觉得它只适用于布尔值和整数(如果我错了,请纠正我)

此外,我对Python很陌生,对我的代码提出任何建议都会有很多不足之处!

2 个答案:

答案 0 :(得分:0)

这是一个例子。它添加了一个新列,其中每个条目都是另外两列的列表。我希望它有所帮助!

df= pd.DataFrame(np.random.randn(10,4))
df[4]= [[df[2][x],df[3][x]] for x in range(df.shape[0])]

答案 1 :(得分:0)

您可以连接列,然后使用numpy的tolist()转换为列表:

In [56]: df = pd.DataFrame(dict(A=[1,1,1], I=[9,9,9], J=[10,10,10]))

In [57]: df
Out[57]:
   A  I   J
0  1  9  10
1  1  9  10
2  1  9  10

In [58]: df["IJ"] = pd.concat((df.I, df.J), axis=1).values.tolist()

In [59]: df.drop(["I","J"], axis=1)
Out[59]:
   A       IJ
0  1  [9, 10]
1  1  [9, 10]
2  1  [9, 10]