我正尝试基于逗号/空格分隔将一列拆分为多列。
我的 Dataframe 目前看起来像
KEYS 1
0 FIT-4270 4000.0439
1 FIT-4269 4000.0420, 4000.0471
2 FIT-4268 4000.0419
3 FIT-4266 4000.0499
4 FIT-4265 4000.0490, 4000.0499, 4000.0500, 4000.0504,
我想
KEYS 1 2 3 4
0 FIT-4270 4000.0439
1 FIT-4269 4000.0420 4000.0471
2 FIT-4268 4000.0419
3 FIT-4266 4000.0499
4 FIT-4265 4000.0490 4000.0499 4000.0500 4000.0504
我的代码目前删除了KEYS列,我不知道为什么。有人能改进或帮助解决这个问题吗?
v = dfcleancsv[1]
#splits the columns by spaces into new columns but removes KEYS?
dfcleancsv = dfcleancsv[1].str.split(' ').apply(Series, 1)
8条答案
按热度按时间au9on6nz1#
如果其他人想将一列(由值分隔)拆分为多列-请尝试以下操作:
这回答了我来这里寻找的问题。
归功于EdChum's代码,其中包括将拆分列添加回 Dataframe 。
注意:第一个参数
df[[0]]
是DataFrame
。第二个参数
df[1].str.split
是要拆分的序列。split Documentation
concat Documentation
xsuvu9jc2#
使用Edchum的答案
我可以通过代入变量来解决这个问题。
d4so4syb3#
OP的输出列数是可变的。在输出列数固定的特定情况下,另一个为结果列命名的优雅解决方案是使用多重赋值。
加载一个示例数据集并将其整形为long格式,以获得一个名为
organ_dimension
的变量。基于
_
分隔符将organ_dimension
变量拆分为2个变量organ
和dimension
。基于this answer“如何将一列拆分为两列?"
k4aesqcs4#
最简单的使用方法是矢量化
gwbalxhn5#
也许这样会有用
6mw9ycah6#
看看这个
5anewei67#
其他的答案似乎都对我不起作用。在阅读了https://pandas.pydata.org/docs/reference/api/pandas.Series.str.split.html上的文档后,这个答案起作用了。它还扩展到了新的列中
yrwegjxp8#
你可能也想试试
datar
,一个将dplyr
,tidyr
和相关的R包移植到python的包: