我有幾個大熊貓DataFrames(說a,b,c)是這樣的:

另一個資料幀(命名x),其行數等于上述資料幀的數量:

如何將第一個資料幀 ( a)的整個第一列與相乘x[0][0]?
然后資料幀的第二列a( bb_11) 與x[0][1].
然后是資料框的第三列a( cc_12) x[0][2],以此類推。
對于 dataframe b,我們應該使用x, 即的第二行x[1][j](j從 0-3 變化)。也就是說,我需要將第二個資料幀 ( b)的整個第一列與x[1][0].
然后資料幀的第二列b( bb_11) 與x[1][1].
然后是資料框的第三列b( cc_12) x[1][2],以此類推。
注意所有資料框列名稱都將相同。我們的資料幀將從檔案中讀取,因此回圈將是一個更簡單的選擇。
樣本資料:
import pandas as pd
d = {'aa_10' : pd.Series([np.nan, 2, 3, 4]),
'bb_11' : pd.Series([6, np.nan, 8, 9]),
'cc_12' : pd.Series([1, 2, np.nan, 4]),
'dd_13' : pd.Series([6, 7, 8, np.nan])}
# creates Dataframe.
a = pd.DataFrame(d)
# print the data.
print (a)
# Initialize data to Dicts of series.
d = {'aa_10' : pd.Series([np.nan, 12, 13, 14]),
'bb_11' : pd.Series([16, np.nan, 18, 19]),
'cc_12' : pd.Series([11, 12, np.nan, 14]),
'dd_13' : pd.Series([16, 17, 18, np.nan])}
# creates Dataframe.
b = pd.DataFrame(d)
# print the data.
print(b)
# Initialize data to Dicts of series.
d = {'aa_10' : pd.Series([np.nan, 21, 31, 41]),
'bb_11' : pd.Series([61, np.nan, 81, 91]),
'cc_12' : pd.Series([11, 21, np.nan, 41]),
'dd_13' : pd.Series([61, 71, 81, np.nan])}
# creates Dataframe.
c = pd.DataFrame(d)
# print the data.
print(c)
# Initialize data to Dicts of series.
d = {'aa_10' : pd.Series([1, 2, 3]),
'bb_11' : pd.Series([6, 7, 8]),
'cc_12' : pd.Series([10, 11, 12]),
'dd_13' : pd.Series([13, 14, 15])}
# creates Dataframe.
x = pd.DataFrame(d)
# print the data.
print(x)
uj5u.com熱心網友回復:
你可以這樣做
a,b,c = [x.mul(y) for x , y in zip([a,b,c],x.values.tolist())]
a
aa_10 bb_11 cc_12 dd_13
0 NaN 36.0 10.0 78.0
1 2.0 NaN 20.0 91.0
2 3.0 48.0 NaN 104.0
3 4.0 54.0 40.0 NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/362527.html
下一篇:如何條形圖繪制資料框的每一行
