【发布时间】:2022-11-18 03:44:54
【问题描述】:
我有一个包含 200 多列的客户端数据 df,例如 A、B、C、D...X、Y、Z。此 df 中有一列,其中包含 CAMPAIGN_ID。我有另一个数据 mapping_csv,它有 CAMPAIGN_ID 和我需要的来自 df 的一组列。我需要为每个活动将 df 拆分为一个 csv 文件,该文件将包含来自该活动的行,并且只有那些符合 mapping_csv 的列。 我收到如下类型错误。 类型错误:无法散列的类型:“列表” 这就是我尝试过的。
for campaign in df['CAMPAIGN_ID'].unique():
df2 = df[df['CAMPAIGN_ID']==campaign]
# remove blank columns
df2.dropna(how='all', axis=1, inplace=True)
for column in df2.columns:
if df2[column].unique()[0]=="0000-00-00" and df2[column].unique().shape[0]==1:
df2 = df2.drop(column, axis=1)
for column in df2.columns:
if df2[column].unique()[0]=='0' and df2[column].unique().shape[0]==1:
df2 = df2.drop(column, axis=1)
# select required columns
df2 = df2[mapping_csv.loc[mapping_csv['CAMPAIGN_ID']==campaign, 'Variable_List'].str.replace(" ","").str.split(",")]
file_shape = df2.shape[0]
filename = "cart_"+str(dt.date.today().strftime('%Y%m%d'))+"_"+campaign+"_rowcnt_"+str(file_shape)
df2.to_csv(filename+".csv",index=False)
任何帮助将不胜感激。
【问题讨论】:
-
请添加数据框的最小可重现示例
标签: python-3.x pandas dataframe split typeerror