pandas + python:逐个单元格合并2个数据帧

问题描述 投票:0回答:3

我有两个

pandas.DataFrame

values = pandas.DataFrame([[0, 1], [7,5]], columns=["a", "b"], index=[1, 2])
info = pandas.DataFrame([["foo", "bar"], ["few", "tar"]], columns=["a", "b"], index=[1, 2])

values
info
是用户设置,因此我想通过合并所有列上的数据帧单元格来打印图表,以获得如下所示的结果:

    a           b
1   0 : foo     1 : bar
2   7 : few     5 : tar

如何在没有 for 循环的情况下做到这一点?

python pandas dataframe cells
3个回答
4
投票

您可以将

values
数据类型转换为 str 并将两个数据框相加,并以
:
作为分隔符。

values.apply(lambda col: col.astype(str)) + " : " + info

#   a       b
#1  0 : foo 1 : bar
#2  7 : few 5 : tar

0
投票

您可以使用 pandas 内置的 .merge 方法。

所以对于你的情况来说,它会是这样的:

pd.merge(values, info, how='inner', on='user)

它的工作原理就像 SQL 中的联接一样。

本文中有很多示例:

http://pandas.pydata.org/pandas-docs/stable/merging.html


0
投票
import pandas as pd

df = pd.DataFrame()
df['a'] = values['a'].astype('str') + ':' + info['a'].astype('str')
df['b'] = values['b'].astype('str') + ':' + info['b'].astype('str')

print(df)
© www.soinside.com 2019 - 2024. All rights reserved.