这是之前提出的问题(由我问:)Oneliner to create string column from multiple columns
我想合并dataframe中的一个子集列到一个新的创建一个新的字符串列。@Zero给了我这个问题的解决方案
import pandas as pd
df = pd.DataFrame({'gender' : ['m', 'f', 'f'],\
'code' : ['K2000', 'K2000', 'K2001']})
col_names = df.columns
df_str = df[col_names].astype(str).apply('_'.join, axis=1)
df_str
Out[17]:
0 K2000_m
1 K2000_f
2 K2001_f
dtype: object
但是,如果我引入区间数据,这就失败了
^{pr2}$理想情况下,我还希望将数据转换为分类数据(这也失败了)
df_cat = pd.concat([df['gender'].astype('category'), \
df['code'].astype('category'), \
df['num'].astype('category')], axis=1)
df_cat_str = df_cat[col_names].astype(str).apply('_'.join, axis=1)
这是怎么回事?我怎样才能达到预期的产量呢
0 K2000_m_(0, 5]
1 K2000_f_(5, 10]
2 K2001_f_(5, 10]
与上一个问题一样,col_names
应该是一个包含列的任何子集的列表(不一定是本例中的所有列)
您需要在lambda函数中将每个列分别转换为
str
:相关问题 更多 >
编程相关推荐