gpt4 book ai didi

python - 如何在 df 中保留 dtype ('o' ) 而不是 bool

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:23 24 4
gpt4 key购买 nike

我正在尝试将数据框中的 5 列合并为具有字符串值(例如“A”或“B”)的一列。我已将 1 转换为 A、B、C ....

我当前的列如下所示

   A B C D E 
1 A
2 C
3 A
4
5 D
6
7 E
8
9 E
10 B

我希望我的专栏看起来像这样

  Type
1 A
2 C
3 A
4
5 D
6
7 E
8
9 E
10 B

但是,它返回 True 和 False,而不是 A、B、C..

下面列出了我的代码

dfparsed_A = dfparsed_groupby[(dfparsed_groupby['A'] == 1)]
dfparsed_B = dfparsed_groupby[(dfparsed_groupby['B'] == 1)]
dfparsed_C = dfparsed_groupby[(dfparsed_groupby['C'] == 1)]
dfparsed_D = dfparsed_groupby[(dfparsed_groupby['D'] == 1)]
dfparsed_E = dfparsed_groupby[(dfparsed_groupby['E'] == 1)]

dfparsed_['A'] = dfparsed_groupby['A'].astype(str).replace('1', 'A')
dfparsed_['B'] = dfparsed_groupby['B'].astype(str).replace('1', 'B')
dfparsed_['C'] = dfparsed_groupby['C'].astype(str).replace('1', 'C')
dfparsed_['D'] = dfparsed_groupby['D'].astype(str).replace('1', 'D')
dfparsed_['E'] = dfparsed_groupby['E'].astype(str).replace('1', 'E')

dfparsed2=[(dfparsed_groupby['A'] == 'A') | (dfparsed_groupby['B'] == 'B') | (dfparsed_groupby['C'] == 'C') |(dfparsed_groupby['D'] == 'D') | (dfparsed_groupby['E'] == 'E') ]

print(dfparsed2)
...
1203 True
5368 True
5644 False
1089 True
6488 True
5651 True
6485 True
6237 True
7632 True
7637 True
5635 False
7445 True
7484 True
7492 True
7638 True
Length: 6362, dtype: bool]

最佳答案

用途:

#if necessary
#df = df.replace('', np.nan)
df['Type'] = df.ffill(axis=1).iloc[:, -1]
print (df)
A B C D E Type
1 A NaN NaN NaN NaN A
2 NaN NaN C NaN NaN C
3 A NaN NaN NaN NaN A
4 NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN D NaN D
6 NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN E E
8 NaN NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN E E
10 NaN B NaN NaN NaN B

如果每行的所有 NaN 值中只有一个非 NaN 值:

mask = df == 1
df['Type'] = mask.dot(df.columns)
print (df)
A B C D E Type
1 1 NaN NaN NaN NaN A
2 NaN NaN 1 NaN NaN C
3 1 NaN NaN NaN NaN A
4 NaN NaN NaN NaN NaN
5 NaN NaN NaN 1 NaN D
6 NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN 1 E
8 NaN NaN NaN NaN NaN
9 NaN NaN NaN NaN 1 E
10 NaN 1 NaN NaN NaN B

关于python - 如何在 df 中保留 dtype ('o' ) 而不是 bool,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58200376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com