【发布时间】:2023-02-07 21:07:11
【问题描述】:
我试图从行中生成差异列。 这是我的代码:
d = {'PARENT_PART': ['KRC161262', 'KRC161262', 'KRC161833', 'KRC161834', 'KRC161834'], 'CITY': ['BARCELONA', 'MADRID', 'BARCELONA', 'BARCELONA', 'MADRID'], 'GOOD_OR_FAULTY': ['GOOD', 'GOOD', 'GOOD','GOOD','FAULT']}
df = pd.DataFrame(data=d)
grouped1 = df.groupby(['PARENT_PART', 'CITY']).size().reset_index(name='counts')
for index, row in grouped1.iterrows():
ciudad = row['CITY']
codigo = row['PARENT_PART']
counts = grouped1.loc[(grouped1['PARENT_PART'] == codigo) & (grouped1['CITY'] == ciudad), 'counts'].values[0]
df.loc[index, ciudad] = counts
print(df)
使用这段代码,我得到了
PARENT_PART CITY GOOD_OR_FAULTY BARCELONA MADRID
0 KRC161262 BARCELONA GOOD 1.0 NaN
1 KRC161262 MADRID GOOD NaN 1.0
2 KRC161833 BARCELONA GOOD 1.0 NaN
3 KRC161834 BARCELONA GOOD 1.0 NaN
4 KRC161834 MADRID FAULT NaN 1.0
我的目标是,对于每个重复的 PARENT PART,创建一个包含 CITY 的新列并添加 1(如计数器)
我的预期结果
PARENT_PART GOOD_OR_FAULTY BARCELONA MADRID
0 KRC161262 GOOD 1.0 1.0
2 KRC161833 GOOD 1.0 NaN
3 KRC161834 GOOD 1.0 1.0
你能帮助我吗!?
提前致谢
【问题讨论】:
-
是否预期 KRC161834 的 MADRID 即使是 FAULT 也会得到 1?
-
也许您正在寻找
pivot_table?特别是aggfunc选项