我们想将几行不同的值添加到一行中。在图像中,您可以看到我们想要做的一个例子,左边的数据(ABC列),右边的数据。
我们的数据集很大,因此想编写一个脚本。目前,我们有一个熊猫数据框。我们想将五行加到一。
有人有一个简单的解决方案吗?
答案 0 :(得分:1)
您可以这样做:
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x, TreeNode y, TreeNode z) {
val = x;
left = y;
right = z;
}
}
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if (nums.length == 0) {
return null;
}
TreeNode ans = helper(nums, 0, nums.length - 1);
return ans;
}
public TreeNode helper(int[] nums, int start, int end) {
if (start > end) {
return null;
}
int mid = (start + end) / 2;
TreeNode root = new TreeNode(nums[mid], null, null);
root.left = helper(nums, start, mid - 1);
root.right = helper(nums, mid + 1, end);
return root;
}
}
(pd.DataFrame([...]))中的[]表示第一行是以下数据->水平格式
答案 1 :(得分:0)
假设这是一个numpy数组。 (如果是csv,则可以以numpy array
的形式读入)
yourArray.flatten(order='C')
答案 2 :(得分:0)
这是您可以尝试的一种方式:
from itertools import product
# sample data
df = pd.DataFrame(np.random.randint(1, 10, size=9).reshape(-1, 3), columns=['X','Y','Z'])
X Y Z
0 2 6 5
1 5 6 2
2 2 4 5
# get all values
total_values = df.count().sum()
# existing column name
cols = df.columns
nums = [1,2,3]
# create new column names
new_cols = ['_'.join((str(i) for i in x)) for x in list(product(cols, nums))]
df2 = pd.DataFrame(df.values.reshape(-1, total_values), columns=new_cols)
X_1 X_2 X_3 Y_1 Y_2 Y_3 Z_1 Z_2 Z_3
0 2 6 5 5 6 2 2 4 5
答案 3 :(得分:0)
我会这样做:
import pandas as pd, numpy as np
df=pd.DataFrame(np.arange(1,10).reshape(3,3),columns=["X","Y","Z"])
print(df)
X Y Z
0 1 2 3
1 4 5 6
2 7 8 9
dat = df.to_numpy()
d = np.column_stack([dat[:,x].reshape(1,dat.shape[0]) for x in range(dat.shape[1])])
pd.DataFrame(d,columns=(x+str(y) for x in df.columns for y in range(len(df)) ))
X0 X1 X2 Y0 Y1 Y2 Z0 Z1 Z2
0 1 4 7 2 5 8 3 6 9