我有一个1996 * 9阵列:
array([[ 0., 1., 1., ..., 1., 1., 0.],
[ 1., 1., 0., ..., 1., 0., 1.],
[ 0., 1., 1., ..., 1., 1., 0.],
...,
[ 0., 0., 0., ..., 0., 0., 1.],
[ 0., 1., 1., ..., 1., 1., 0.],
[ 0., 1., 1., ..., 1., 1., 0.]])
我想要一个1996 * 1阵列。
我做了什么:
pd.DataFrame(train_L.astype(int)).apply(lambda x: ''.join(str(x)), axis = 1)
我得到了
0 0 0\n1 1\n2 1\n3 1\n4 1\n5 1...
1 0 1\n1 1\n2 0\n3 0\n4 0\n5 0...
2 0 0\n1 1\n2 1\n3 0\n4 1\n5 1...
3 0 0\n1 1\n2 1\n3 0\n4 1\n5 1...
4 0 1\n1 0\n2 0\n3 0\n4 0\n5 0...
问题:
\n1
我的问题: 没有这些警告,有没有一种简单的方法来进行合并?
示例输出
我有什么:
v1 v2 v3 ... v9
1 0 0 ... 1
我想:
v1
1\t0\t0\t...\t1
\t
分隔。为什么我需要这种奇怪的形式:
对于图像处理,我们有一列用于图像标签。但是,一个图像可能有多个标签。我必须将多个标签挤入1列。这是图书馆的要求。
答案 0 :(得分:1)
将dtype转换为str:
后,您可以apply
一个lambda
In [14]:
df = pd.DataFrame(np.random.randn(4,5))
df
Out[14]:
0 1 2 3 4
0 1.036485 -1.243777 1.286254 1.973786 -0.083245
1 1.698828 1.696846 0.037732 -0.630546 -0.135069
2 -1.231337 -1.166480 0.046414 -0.965710 1.341809
3 0.591176 0.275267 -0.446553 -0.230353 0.258817
In [16]:
df.astype(str).apply(lambda x: ''.join(x), axis=1)
Out[16]:
0 1.03648484941-1.243776761241.286253591521.9737...
1 1.698827772721.696846119330.0377324485782-0.63...
2 -1.23133722226-1.166480155330.046414100678-0.9...
3 0.5911755605680.275266550205-0.446552705185-0....
dtype: object
您似乎想要一个只有join
标签的标签:
In [17]:
df.astype(str).apply(lambda x: '\t'.join(x), axis=1)
Out[17]:
0 1.03648484941\t-1.24377676124\t1.28625359152\t...
1 1.69882777272\t1.69684611933\t0.0377324485782\...
2 -1.23133722226\t-1.16648015533\t0.046414100678...
3 0.591175560568\t0.275266550205\t-0.44655270518...
dtype: object
答案 1 :(得分:1)
这会产生一个字符串,这可能不是你想要的。也许你应该用你要求的格式解释你想要数据的原因。
a = np.array([[ 0., 1., 1., 1., 1., 0.],
[ 1., 1., 0., 1., 0., 1.],
[ 0., 1., 1., 1., 1., 0.],
[ 0., 0., 0., 0., 0., 1.],
[ 0., 1., 1., 1., 1., 0.],
[ 0., 1., 1., 1., 1., 0.]])
v = pd.DataFrame(['\t'.join([str(val) for val in row]) for row in a], columns=['v1'])
for row in v.iterrows():
print(row[1].v1)
0.0 1.0 1.0 1.0 1.0 0.0
1.0 1.0 0.0 1.0 0.0 1.0
0.0 1.0 1.0 1.0 1.0 0.0
0.0 0.0 0.0 0.0 0.0 1.0
0.0 1.0 1.0 1.0 1.0 0.0
0.0 1.0 1.0 1.0 1.0 0.0
>>> v
v1
0 0.0\t1.0\t1.0\t1.0\t1.0\t0.0
1 1.0\t1.0\t0.0\t1.0\t0.0\t1.0
2 0.0\t1.0\t1.0\t1.0\t1.0\t0.0
3 0.0\t0.0\t0.0\t0.0\t0.0\t1.0
4 0.0\t1.0\t1.0\t1.0\t1.0\t0.0
5 0.0\t1.0\t1.0\t1.0\t1.0\t0.0