首先看应用的例子:
原始的数据表格是这样
经过处理最终变成了这样
完整代码如下:
import pandas as pd
df=pd.read_excel(r'C:\Users\lenovo\Desktop\lujing.xls',index=False)
df=df.T
for i in range(311):
df1=df[i].dropna()
list1=[]
list2=[]
list3=[]
for n in df1:
list1.append(df1[0])
list2.append(df1[1])
list3.append(df1[2])
df1=pd.DataFrame(df1)
df1.insert(loc=0,column="用户ID",value=list1)
df1.insert(loc=1,column="用户名",value=list2)
df1.insert(loc=2,column="列1",value=list3)
df1.columns=["用户ID","用户名","列1","地点"]
df1=df1.drop(index=["用户ID","用户名","列1"])
if i==0:
df2=df1
else:
df2=df2.append(df1)
df2.to_excel(r'C:\Users\lenovo\Desktop\lujing4.xls',index=False)
分解其中的主要操作:
- 读取、写入xls文件
df=pd.read_excel(r'C:\Users\lenovo\Desktop\lujing.xls',index=False)
df2.to_excel(r'C:\Users\lenovo\Desktop\lujing4.xls',index=False)
-
去掉值为Nan的行
df1=df[i].dropna() -
扩充列
list1.append(df1[0])
-
将列转变为DataFrame格式
df1=pd.DataFrame(df1) -
DataFrame中插入新列
df1.insert(loc=0,column="用户ID",value=list1) -
更改列名
df1.columns=["用户ID","用户名","列1","地点"] -
删除某行
df1=df1.drop(index=["用户ID","用户名","列1"]) -
拼接DataFrame
df2=df2.append(df1)