たとえば、私はアイテムの名前を抽出し、そのグループの長さをマークし、このような機能を持っている:python-pandasで関数を適用すると、groupby項目の名前を取得するにはどうすればいいですか?
:def func(name, len):
with open("file.txt", "a") as f:
f.write(name+len+"\n")
そして、どのように私はのように、この機能を適用するために、各グループの名前を取得することができます
df.groupby("id_").apply(lambda group: func(group.name, len(group)))
ありがとうございます!
EDIT:
def split_group_to_df(group, fullpath):
group.apply(lambda df: write_df_to_file(df, fullpath))
def write_stock_to_file(df, fullpath):
with open(fullpath, 'a') as fwrite:
if os.stat(fullpath).st_size == 0:
df.to_csv(fwrite, index=False)
else:
df.to_csv(fwrite, index=False, header=False)
df = pd.read_csv("file.txt")
df.groupby('id_').apply(lambda group: split_group_to_df(group, group.name+'.txt'))
出力がある:
000008
92000000
12121
元のデータフレームの各行は、現在異なる行に分割されます。どうして?
「df」のサンプルを追加できますか? 'df = pd.DataFrame({'id _':[1,2,3,4,1,2,3,1]、 'name':[4,5,6,1,4,2] 、4,7]}) ')? 'name'は列名ですか? – jezrael