在文本细粒度分析时,往往一句话中提及的实体并不相同,一旦指标多了以后,就会存在很多0行,如果不加以处理则会影响分析结果,因此尽量地保留信息量较多的短文本。
情形一:即每个指标都不能为0,即任何一个为0都不行(类似于and,要求较高)
这种情形一般适用于对因变量的处理,比如满意度、忠诚度为0的较多,那么被解释变量就没有信息量了。
y_data=y_data[(y_data!=0).all(axis=1)]
情形二:去除全部为0的行,保留不全为零的行(类似于or,要求较宽)
all_data=y[~(y==0).all(axis=1)]
完整代码:
import pandas as pd
data = pd.read_excel('结构方程模型数据汇总.xlsx',sheet_name='汇总')
df=data.drop(['疫情阶段'],axis=1)#暂时把疫情阶段砍掉,以免影响筛选效果,因为疫情阶段不可能为0
#先删除因变量中有任何一个为0的行,即满意度,推荐他人与自身忠诚
y_data=df.iloc[:,23:26]
y_data=y_data[(y_data!=0).all(axis=1)]
y_index=y_data.index.tolist()#找到符合条件的索引
y=df.iloc[y_index]
#删除自变量全为0的行
all_data=y[~(y==0).all(axis=1)]
all_index=all_data.index.tolist()
fin_data=data.iloc[all_index]
fin_data.to_excel('amos细粒度情感分析.xlsx')