第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

按列分組數(shù)據(jù)框并保存到不同的目錄

按列分組數(shù)據(jù)框并保存到不同的目錄

偶然的你 2023-05-23 14:39:00
我有以下數(shù)據(jù)集:X Y Z S A_ _ _ _ _0 1 2 1 18 5 3 1 25 6 7 2 19 8 9 2 26 7 7 1 3我想像這樣將它們相應(yīng)地文件夾它們的 S 和 A 列DATA\S1\A1DATA\S1\A2DATA\S2\A1我只想要我的 csv 文件中的相應(yīng) XYZ 值我試過這段代碼。文件夾的創(chuàng)建有效,但我無法將相應(yīng)的 csv 文件保存到正確的文件夾中。我該如何解決這個(gè)問題df 是包含 3 個(gè)不同 pandas-dataframes 的列表def write2path(df):? ? path = getcwd()? ? subjects = ["subject%d"%i for i in range(1,31)]? ? activities = [str(i) for i in range(1,7)]? ? try:? ? ? ? path = path + "\\DATA"? ? ? ? mkdir(path)? ? ? ??? ? ? ? for l in subjects:? ? ? ? ? ? temp_path = path +"\\"+ l? ? ? ? ? ? mkdir(temp_path)? ? ? ? ? ? for k in activities:? ? ? ? ? ? ? ? temp_path_child = temp_path +"\\" + k? ? ? ? ? ? ? ? mkdir(temp_path_child)? ? ? ? ? ? ? ? for j in range(len(df)):? ? ? ? ? ? ? ? ? ? ch='x'? ? ? ? ? ? ? ? ? ??? ? ? ? ? ? ? ? ? ? for i, x in df[j].loc[(['Subject0'] == int(l[7])) & (['Activity0'] == int(k))]:?? ? ? ? ? ? ? ? ? ? ? ? print(x)? ? ? ? ? ? ? ? ? ? ? ? val=chr(ord(ch)+j)? ? ? ? ? ? ? ? ? ? ? ? x.to_csv(temp_path_child+"\\"+f'sensor-{val}.csv', index=False)? ? return self._engine.get_loc(self._maybe_cast_indexer(key))? File "pandas\_libs\index.pyx", line 111, in pandas._libs.index.IndexEngine.get_loc? File "pandas\_libs\index.pyx", line 135, in pandas._libs.index.IndexEngine.get_loc? File "pandas\_libs\index_class_helper.pxi", line 109, in pandas._libs.index.Int64Engine._check_typeKeyError: False
查看完整描述

2 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

讓我們使用 pathlib 并使用一些整潔的功能:


from pathlib import Path


def create_folder(path):

    if not path.is_dir():

        path.mkdir(parents=True)


def if_file_exists(filename,trg_folder,dataframe):

    if trg_folder.joinpath(file).is_file():

        # if file exists then write behavior here.

    else:

        dataframe.to_csv(trg_folder.joinpath(filename),index=False)

    

然后在下面的變量和 groupby 中列出您完全合格的 start_dir - 寫入您的目錄:


start_dir = r'your_start_dir' # like /tmp/files/data 


for paths, group in df.groupby(['S','A']):

    paths = list(map(str,paths)) # if ints.

    target_folder = Path(start_dir).joinpath('DATA','S'+paths[0],'A'+paths[1])

    create_folder(target_folder)

    file_name = f"S{paths[0]}-A{paths[1]}.csv"

    if_file_exists(file_name,target_folder,group)

http://img1.sycdn.imooc.com//646c5fa70001e16d03310298.jpg

df = pd.read_csv("your_start_dir\DATA\S1\A1\S1-A1.csv")


print(df)


   X  Y  Z  S  A

0  0  1  2  1  1


查看完整回答
反對(duì) 回復(fù) 2023-05-23
?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

如果您想為“S”和“A”的每個(gè)組合創(chuàng)建一個(gè) csv 文件(比如 data.csv),那么您可以執(zhí)行 groupby,然后遍歷每個(gè)組,分別保存每個(gè)組


樣本

df = pd.DataFrame({

    'X': [0,8,5,9,6],

    'Y': [1,5,6,8,7],

    'Z': [2,3,7,8,7],

    'S': [1,1,2,2,1],

    'A': [1,2,1,2,3]

})


for group_name, df_group in df.groupby(['S','A']):

  S = f"S{group_name[0]}"

  A = f"A{group_name[1]}"

  p = os.path.join(S, A)

  if not os.path.exists(p):

    os.makedirs(p)

    

  df_group[['X', 'Y', 'Z']].reset_index(drop=True).to_csv(os.path.join(p, f"{S}_{A}.csv"), index=False)

您將獲得以下目錄結(jié)構(gòu)中的文件:

http://img1.sycdn.imooc.com//646c5fbc00013a5502310259.jpg

查看完整回答
反對(duì) 回復(fù) 2023-05-23
  • 2 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)