簡體   English   中英

使用 Pandas 動態創建數據幀

[英]Dynamically creating dataframes with Pandas

我有一個龐大的數據集,我想根據第一列的字符串值將其拆分為幾個較小的數據集。

到目前為止,我已經刪除了最終數據幀中不需要的所有信息,並使用數據幀字典動態創建,但無濟於事,並創建了拆分。

對於數據框字典,我嘗試過:

dict = {}
number_of_df= 0

for i in range(df.shape[0]):
    if df[i:] != df[i-1]:
        number_of_df += 1

for i in range(len(number_of_df)):
    d['t' + str(i)] = df.shift(i).add_suffix('_t' + str(i))

並復制行的值,直到行中的第一個值與前一個值不同:

for key in dict:
    while df[i:] == df[i-1:]:
        df[key].append= df2.loc[df1.index[i]] = df1.iloc[i]

    df[key].to_csv('file'+str(key)+'.csv', index=False)

我希望它創建多個 CSV,每個文件都以創建順序命名。 我有幾個錯誤,首先它說 Key error: -1 while created the dictionary and only created an empty one,當切片不返回任何錯誤但也不向字典寫入任何內容時。 我還認為我可能指向錯誤的行和值我想在字典中更改。

預先感謝我的英語,而不是母語和完整的 n00b。

我想根據第一列的字符串值分成幾個較小的。

這比你想象的要容易。 只需將groupby與您的第一列一起使用,然后使用dict + tuple來構建您的字典。 您可以通過索引df.columns選擇第一列。

dct = dict(tuple(df.groupby(df.columns[0])))

如果您只需要將每個數據幀導出到 CSV 文件,則不需要額外的字典費用。 直接迭代groupby對象即可:

for key, df_slice in df.groupby(df.columns[0]):
    df_slice.to_csv(f'file_{key}.csv', index=False)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM