個人メモ なんかのチェック処理・・・の続き
なんかのチェック処理でその結果のDataFrameを作成しています。
その続きです
https://qiita.com/kawagucchi_suzuki/items/9921bc5331afe260385b
(DFを作ったのはこちらを参照)
結果を見るにあたってファイルだったりすると面倒なので
Redmineチケット発行してissueとして結果を作成すれば楽に還元できます。
https://qiita.com/kawagucchi_suzuki/items/b65bd98e66c742e7c465
(こちらで書きました)
で、DataFrameはいろいろなものが出てきそうなので
DataFrame→MarkdownTableを生成するよう関数を定義しました。
ざっとこんな感じ
False判定があれば強調するようにしておきました。
def createMarkdownTable(issue, df):
for i in range(len(df.columns)):
issue = issue + "|**" + str(df.columns[i]) + "**"
issue = issue + "|" + "\n"
for i in range(df.shape[0]):
for j in range(df.shape[1]):
if df.iloc[i, j] == False:
z = "**" + str(df.iloc[i, j]) + "**"
else:
z = str(df.iloc[i, j])
issue = issue + "|" + z
issue = issue + "|" + "\n"
return issue
検証
y = x[['filename','ext','kaigyocode','mojicode','judge']]
issue = ''
issue_x = createMarkdownTable(issue, y)
print(issue_x)
y = x[['filename','ext','kaigyocode','mojicode','judge']]
issue = ''
issue_x = createMarkdownTable(issue, y)
print(issue_x)
redmeineとQiitaのmarkdownは少々異なるようなので
Qitta上ではテーブルと識別するように書き加えています。
filename | ext | kaigyocode | mojicode | judge |
---|---|---|---|---|
a.java | java | CRLF | UTF8 | True |
b.java | java | CRLF | SJIS | False |
c.java | java | LF | UTF8 | False |
a.java | java | CRLF | UTF8 | True |
a.akira | akira | shiena | popko | True |
a.akira | akira | shiena | poteko | False |
a.akira | akira | shiena | popko | True |
b.akira | akira | shiena | popko | True |
z.kawashima | kawashima | yuki | pipimi | True |
z.kawashima | kawashima | yuki | pipko | False |
2つの話をまとめるとコードはこんな感じに
import pandas as pd
df1_columns=['ext','True_kaigyocode','True_mojicode']
df1 = pd.read_csv('/home/satoshi/popko/Def.txt',
dtype='object',
encoding='utf_8',
names=df1_columns,
skipinitialspace=True)
df2_columns=['filename','ext','kaigyocode','mojicode']
df2 = pd.read_csv('/home/satoshi/popko/data.txt',
dtype='object',
encoding='utf_8',
names=df2_columns,
skipinitialspace=True)
x = pd.merge(df2,df1,on='ext',how='outer')
(x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode'])
x[(x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode'])]
x[~((x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode']))]
x['judge'] = ((x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode']))
x[['filename','ext','kaigyocode','mojicode','judge']]
# エラー有無チェック、all()を使うことで
# 1つでもエラーがあったかどうか、判定
# 集合の感覚と同じ、便利!
((x['kaigyocode'] == x['True_kaigyocode']) & (x['mojicode'] == x['True_mojicode'])).all()
# 関数化できるよね。
def createMarkdownTable(issue, df):
for i in range(len(df.columns)):
issue = issue + "|**" + str(df.columns[i]) + "**"
issue = issue + "|" + "\n"
for i in range(df.shape[0]):
for j in range(df.shape[1]):
if df.iloc[i, j] == False:
z = "☓"
elif df.iloc[i, j] == True:
z = ""
else:
z = str(df.iloc[i, j])
issue = issue + "|" + z
issue = issue + "|" + "\n"
return issue
# 検証 ---------------------------------------------------
y = x[['filename','ext','kaigyocode','mojicode','judge']]
issue = ''
issue_x = createMarkdownTable(issue, y)
print(issue_x)
Author And Source
この問題について(個人メモ なんかのチェック処理・・・の続き), 我々は、より多くの情報をここで見つけました https://qiita.com/kawagucchi_suzuki/items/ede628523d9229724714著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .