在pandas更新版本后,往DataFrame中添加新的一行的方法发生了变化。假设原有数据表格为data,需要在data下添加新的一行,可使用
data = pd.concat([data]+[copydata],ignore_index=True,axis=0) #data为原始数据,copydata为插入数据
进行添加。
使用例:
现有一个excel表格,“d”"s1""s2""s3""s4""s5""label"分别为特征维度,"n"为具有该特征的人数
现在想要将该数据转换成每个个体的特征数据,即将”n"行拆开,运用以下代码:
import pandas as pd
import numpy as np
data=pd.read_csv('G:/feature_class.csv')
data_new=pd.DataFrame(columns=['d','s1','s2','s3','s4','s5','label']) #新建表
#print(data_new)
for index,row in data.iterrows():
data_temp=pd.DataFrame({'d':[row['d']],'s1':[row['s1']],'s2':[row['s2']],'s3':[row['s3']],'s4':[row['s4']],'s5':[row['s5']],'label':[row['label']]}) #插入表,注意字段与data_new保持一致
#print(data_temp)
copydata=[data_temp]*row['n'] #复制n次
data_new = pd.concat([data_new]+copydata,ignore_index=True,axis=0)
data_new.to_csv('D:/result.csv')
即可完成。