提取行到新建列。
新建6个字符串将数据储存,再写入
建议可以参考一下python的pandas库的DataFrame方法的转置函数,链接地址:https://www.cnblogs.com/niulang/p/11820529.html
import numpy as np
import pandas as pd
# 生成数据
col1 = np.tile(np.array([1,2,3,4,5,6]), 4)
col2 = np.arange(24)
df = pd.DataFrame([l2, l10]).T
df.columns=['日期', '数据']
# 转换数据
row_num = 6
col_num = df.shape[0] / row_num
df_col1_values = df.iloc[:, 0].values
df_col2_values = df.iloc[:, 1].values
arr = df_col2_values.reshape(col_num, row_num).T
df2 = pd.DataFrame(arr)
df2.columns=['日期', '数据', '', '']
df2
转换完毕
新建一个,然后处理的时候index和column交换
import numpy as np
import pandas as pd
df = pd.DataFrame({'日期':np.tile(np.array([1,2,3,4,5,6]), 4), '数据':np.arange(1,25)/10})
df2 = pd.DataFrame(np.insert(df.iloc[:, 1].values.reshape(int(df.shape[0] / row_num), len(
df['日期'].unique())).T, 0, values=df['日期'].unique(), axis=1), columns=['日期', '数据', '', '', ''])
df2
import numpy as np
import pandas as pd
df = pd.DataFrame(
{'日期': np.tile(np.array([1, 2, 3, 4, 5, 6]), 4), '数据': np.arange(1, 25)/10})
df2 = pd.DataFrame(np.insert(df.iloc[:, 1].values.reshape(int(df.shape[0] / len(df['日期'].unique())), len(
df['日期'].unique())).T, 0, values=df['日期'].unique(), axis=1), columns=['日期', '数据', '', '', ''])
df2
用第二个就能满足你的要求。
import numpy as np
import pandas as pd
columns_date = '日期'
columns_values = '数据'
df = pd.DataFrame(
{columns_date: np.tile(np.array([1, 2, 3, 4, 5, 6]), 4), columns_values: np.arange(1, 25)/10})
df2 = pd.DataFrame(np.insert(df.iloc[:, 1].values.reshape(int(df.shape[0] / len(df[columns_date].unique())), len(
df[columns_date].unique())).T, 0, values=df[columns_date].unique(), axis=1), columns=[columns_date, columns_values]+['' for i in range(int(df.shape[0] / len(df[columns_date].unique()))-1)])
df2