这是一个能将SPSS频率表转三线表的脚本
前面90%工作由Python完成,后面由Excel宏完成
import numpy as np
import pandas as pd
spss_df = pd.read_excel('spss.xlsx')
spss_df
Unnamed: 0 | Unnamed: 1 | Unnamed: 2 | Unnamed: 3 | Unnamed: 4 | Unnamed: 5 | |
---|---|---|---|---|---|---|
0 | 频率表 | NaN | NaN | NaN | NaN | NaN |
1 | NaN | NaN | NaN | NaN | NaN | NaN |
2 | 省份 | NaN | NaN | NaN | NaN | NaN |
3 | NaN | NaN | 频率 | 百分比 | 有效百分比 | 累积百分比 |
4 | 有效 | 上海 | 5808 | 20.143585 | 20.143585 | 20.143585 |
... | ... | ... | ... | ... | ... | ... |
388 | 订单状态 | NaN | NaN | NaN | NaN | NaN |
389 | NaN | NaN | 频率 | 百分比 | 有效百分比 | 累积百分比 |
390 | 有效 | 1 | 27793 | 96.393022 | 96.393022 | 96.393022 |
391 | NaN | 付款以后用户退款成功,交易自动关闭 | 1040 | 3.606978 | 3.606978 | 100 |
392 | NaN | 总计 | 28833 | 100 | 100 | NaN |
393 rows × 6 columns
def get_col_name(df, name_index=3):
"""
获取统计信息名称
"""
return df.iloc[name_index].to_list(