python-2.7 - Python Pandas - n X m 数据帧乘以 1 X m 数据帧

标签 python-2.7 pandas multiple-columns

我正在尝试将 10X7 Pandas 数据帧乘以 Python 中的 1X7 数据帧。

这是我所拥有的:

df = pd.DataFrame(np.random.rand(10,7),columns=list('ABCDEFG'))
df_1 = pd.DataFrame(np.random.rand(1,7),columns=list('ABCDEFG'))

我尝试过这个:

df_prod = pd.DataFrame(columns=df)
for i in range(0, df.shape[0]):
    df_prod.iloc[i,:] = df[i,:].tolist()*df_1.iloc[0,:].tolist()

但我收到此错误消息:

Traceback (most recent call last):
  File "C:\Python27\test.py", line 29, in <module>
    df_elem.iloc[i,:] = df_val[i,:].tolist()*df_cf.iloc[0,:].tolist()
  File "C:\python27\lib\site-packages\pandas\core\frame.py", line 1678, in __getitem__
    return self._getitem_column(key)
  File "C:\python27\lib\site-packages\pandas\core\frame.py", line 1685, in _getitem_column
    return self._get_item_cache(key)
  File "C:\python27\lib\site-packages\pandas\core\generic.py", line 1050, in _get_item_cache
    res = cache.get(item)
TypeError: unhashable type

我需要将 df 的所有行乘以 df_1

我需要:

df.iloc[0,:] * df_1
df.iloc[1,:] * df_1
df.iloc[2,:] * df_1
df.iloc[3,:] * df_1
.
.
.
.
df.iloc[9,:] * df_1

有没有一种简单的方法可以在Python中实现这种乘法?

最佳答案

像这样:

%%timeit
df.mul(df_1.ix[0])
1000 loops, best of 3: 251 µs per loop

检查结果是否匹配:

all(df.mul(df_1.ix[0]) == df.apply(lambda x: x * df_1.ix[0],axis = 1))
True

这可以避免应用。 Link to docs

关于python-2.7 - Python Pandas - n X m 数据帧乘以 1 X m 数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30563934/

相关文章:

python - Pygraphviz xlabel 位置和颜色不起作用

python - Enthought Python 发行版中的 Ipython 自动完成

python - 在python中使用相同签名的方法重载

python-2.7 - 根据其他数据帧中的值选择数据帧行

python - 使用 pandas 和 openpyxl : Repaired Part:/xl/worksheets/sheet1. xml 部分时出现 Excel 错误,并出现 XML 错误。 HRESULT 0x8000ffff 第 1 行,第 0 列

python - 在 MySQLdb 中使用变量作为字段名称,Python 2.7

python - Pandas 数据框字符列到整数

mysql - 具有不同列的单个 SQL 插入命令

css - 为什么我的媒体查询不起作用?

使用 cout 的 C++ 设置列