我有两个
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 循环的情况下做到这一点?
您可以将
values
数据类型转换为 str 并将两个数据框相加,并以 :
作为分隔符。
values.apply(lambda col: col.astype(str)) + " : " + info
# a b
#1 0 : foo 1 : bar
#2 7 : few 5 : tar
您可以使用 pandas 内置的 .merge 方法。
所以对于你的情况来说,它会是这样的:
pd.merge(values, info, how='inner', on='user)
它的工作原理就像 SQL 中的联接一样。
本文中有很多示例:
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)