如何拆分Pandas DataFrame中以空格分隔的单元格并生成76列?
解决方案
要把你的cardiac DataFrame每行的所有空格分隔值拆分成76个独立列,我们可以通过三步快速实现:
- 合并每行的所有列内容:把每行10列里的所有数值字符串拼接成一个完整的空格分隔字符串
- 拆分字符串为多列:将拼接后的字符串直接拆分成76个列
- (可选)设置列名:给新列命名,方便后续处理
下面是具体的代码实现:
import pandas as pd # 处理你的原始DataFrame cardiac # 1. 按行合并所有列的内容为单个字符串 merged_rows = cardiac.apply(lambda row: ' '.join(row.astype(str)), axis=1) # 2. 拆分字符串并只保留前76列(确保符合你的需求) split_df = merged_rows.str.split(expand=True).iloc[:, :76] # 3. 给新DataFrame设置清晰的列名(可选操作) split_df.columns = [f'feature_{num:02d}' for num in range(76)] # 查看结果 split_df.head()
细节说明
astype(str):确保所有列的内容都转成字符串类型,避免数字类型直接拼接时出现格式错误str.split(expand=True):Pandas的这个方法会自动把拆分后的列表展开成多列,完美适配这种场景iloc[:, :76]:虽然你提到每行正好有76个值,但加上这个可以防止因数据异常出现多余列的情况,让代码更健壮
如果你的原始列已经都是字符串类型,可以把row.astype(str)改成row,简化代码。
内容的提问来源于stack exchange,提问作者TJE
相关产品推荐
相关产品推荐

