前文
上司は最近ますます極端になっています。彼は仕事を辞めようとしていて、コンテンツを1つのフォームにまとめるために何百ものフォームを送ってくれました。
幸い、Pythonは知っているので、数分で完了できます。Pythonを知らない人に変更すると、翌日の夜明けまで残業できなくなります〜
このような便利なスキルをみんなで共有する必要があります。これ以上面倒なことはせずに、始めましょう!
準備オーケー
最初にテーブルデータを準備する必要があります。クロールできる兄弟は自分で少しクロールできます。そうでない場合は、データを直接取得するために私を見つけることができます。
コンピュータの左側にあり、携帯電話の下部にあります
ここでは表のデータのみを示して
いるので、5つの表のみを使用しています。現在、市レベルを州レベルに統合しています。
この記事のアイデア
- 現在のフォルダ内のすべてのExcelをGuangdongProvince.xlsxに要約します
- 新しいフィールド都市を追加します。フィールドの内容は店舗が配置されている都市であり、このフィールドは前面に配置されます。
- 星評価がstar_0のすべてのデータは必要ありません
- データの3つのフィールドが空のフィールドである限り、データ全体は必要ありません。
- 価格から$記号を削除します
コード
すべてのコードはすべての人と共有されます。非表示にするのは好きではありません。
import glob
import openpyxl
workbook = openpyxl.Workbook()
sheet_total = workbook.active
sheet_total.append(['城市', '门店名称', '星级', '星级得分', '点评总数', '人均消费', '口味', '环境', '服务', '链接网址', '分类', '商圈', '详细地址', '推荐菜'])
def count_none(line):
"""返回空内容的数据"""
count = 0
for d in line:
if not d:
count += 1
return count
filenames = glob.glob('*/*.xlsx')
for filename in filenames:
# print(filename)
city = filename.split('.')[0].split('\\')[-1]
workbook_temp = openpyxl.load_workbook(filename)
sheet = workbook_temp.active
for row in sheet.iter_rows(min_row=2, min_col=1, max_col=sheet.max_column, max_row=sheet.max_row):
row_data = [col.value for col in row]
if row_data[1] == 'star_0':
continue
# 定义一个方法判断空字段的数量
if count_none(row_data) >= 3:
continue
# 去掉平均价格中的 ¥
if row_data[4]:
row_data[4] = row_data[4].strip('¥')
row_data.insert(0, city)
# print(row_data)
sheet_total.append(row_data)
# break # 调试只处理一个
workbook.save('广东省.xlsx')
効果
オーブンから出たばかりで、とても新鮮です。
フィルタリングを実行しました。そうしないと、すべてが1か所に表示されます。
ご覧のとおり、データは1つのテーブルに正常にマージされています。
あなたがそれを好きなら、それを好きにして集めることを忘れないでください〜
より技術的な乾物を共有するために私に従ってください
。コードを直接取るのは無料で娼婦をすることと同じです。好きで収集は真実です...
あなたのサポートは私の原動力ですアップデート!