そして、以下のように、これらのデータフレームの両方からファイルを作成したいと思います。
NR
NR^AI123456^AABC International PVT.Ltd^A1234^A526
Address^AXYZ,1234,Industrial Estate^A123^A
NR^I123457^ABC1 International PVT.Ltd^A1236^A529
Address^AXYZ,1235,Industrial Estate^A129^A
NR^AI123458^AABC2 International PVT.Ltd^A1238^A1000
Address^AXYZ,1236,Industrial Estate^A129^A
^A
パンダを使用して分離されたテーブルから連続した列の値が追加された1つのファイルを作成する方法を誰かが教えてくれますか?
データフレームが次のパターンに従っていると仮定します。
import pandas as pd
df1 = pd.DataFrame({"nr": ["nr1", "nr2", "nr3"], "name": ["name1", "name2", "name3"], "id": ["id1", "id2", "id3"], "bal": ["bal1", "bal2", "bal3"]})
df2 = pd.DataFrame({"add": ["add1", "add2", "add3"], "house no": ["house no1", "house no2", "house no3"], "add add": ["add add1", "add add2", "add add3"]})
入力行ごとに単一の出力行にそれらを書き込みたい場合は、次の方法でそれを実現できます。
pd.merge(df1, df2, left_index=True, right_index=True).stack().groupby(level=0).apply("^A".join).to_csv(header=False, index=False)
しかし、あなたの質問では、2つのデータフレームのレコードをインターリーブする必要があります。その場合、比較的簡単な方法は次のようになります。
x = df1.stack().groupby(level=0).apply("^A".join).values.tolist()
y = df2.stack().groupby(level=0).apply("^A".join).values.tolist()
f = open('test.txt', 'w')
for i, z in enumerate(x):
f.write(f"NR^A{z}\n")
f.write(f"Address^A{y[i]}\n")
f.close()
結果の出力ファイルは、質問の形式に従います。
NR^Anr1^Aname1^Aid1^Abal1
Address^Aadd1^Ahouse no1^Aadd add1
NR^Anr2^Aname2^Aid2^Abal2
Address^Aadd2^Ahouse no2^Aadd add2
NR^Anr3^Aname3^Aid3^Abal3
Address^Aadd3^Ahouse no3^Aadd add3
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加