我有一个由CSV填充的Pandas Dataframe,然后我读取列并按行中的元素迭代(对于列中的每个元素)并将该元素写入文件中。我的问题是我在行中有要加入一个元素的元素。
假设我有A到Z列,让我们说它的元素是1到23.假设我想在一个元素中加入数字9和10(第I列和第J列)(第I列和第J列成为1它的值变为[9,10])
如何使用pandas(迭代时)实现这一目标?
我的代码很长,但您可以找到它here。我试过groupby但我觉得它只适用于布尔值和整数(如果我错了,请纠正我)
此外,我对Python很陌生,对我的代码提出任何建议都会有很多不足之处!
答案 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]