Jupyter Notebook中单行打印Pandas行内容的实现需求
没问题,我来帮你调整代码得到想要的单行输出格式!
首先,原代码里直接打印df.loc[0]和df.loc[1]会输出完整的Series对象信息,咱们需要提取每行的数值并自定义格式。这里有几种简单的实现方式:
方式1:针对指定行手动拼接
import pandas as pd d = {'col1': [1, 2], 'col2': [3, 4]} df = pd.DataFrame(data=d) # 把每行的数值转成空格分隔的字符串 row0 = ' '.join(map(str, df.loc[0].values)) row1 = ' '.join(map(str, df.loc[1].values)) # 用逗号+空格拼接并打印,确保在同一行 print(f"{row0}, {row1}")
执行这段代码就会输出你想要的:1 3, 2 4
方式2:通用循环处理(适配多行配对场景)
如果是要循环处理两个DataFrame的多行配对(比如df1和df2的第i行配对),可以用循环来批量处理:
import pandas as pd # 示例两个结构相同的DataFrame df1 = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) df2 = pd.DataFrame({'col1': [5, 6], 'col2': [7, 8]}) # 循环收集每一对行的内容,最后统一打印在同一行 result = [] for i in range(len(df1)): # 处理df1的第i行 row1_str = ' '.join(map(str, df1.loc[i].values)) # 处理df2的第i行 row2_str = ' '.join(map(str, df2.loc[i].values)) result.append(f"{row1_str}, {row2_str}") # 把所有结果用空格分隔,打印在同一行 print(' '.join(result))
这段代码会输出:1 3, 5 7 2 4, 6 8(如果想每个配对单独占一行,直接在循环里执行print即可)
方式3:简洁的列表推导式
如果只需要处理单个DataFrame的所有行并输出指定格式,用列表推导式更高效:
import pandas as pd d = {'col1': [1, 2], 'col2': [3, 4]} df = pd.DataFrame(data=d) # 一次性把所有行转成目标格式,再拼接打印 print(', '.join([' '.join(map(str, row)) for row in df.values]))
执行后同样会输出:1 3, 2 4
核心思路就是先提取每行的原始数值,再通过字符串拼接把它们转换成你需要的格式,最后确保在同一行输出即可。
内容的提问来源于stack exchange,提问作者user8044236
相关产品推荐
相关产品推荐

