回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>填写一个非常大的数据帧有两个问题。这幅画有一部分。我想把E和F的1000降到26,再也不要了。以同样的方式,我希望2000年被拉到-1和下一个26。我原以为我可以用bfill和ffill做到这一点,但不幸的是,我不知道如何……(图1)
<a href="https://i.stack.imgur.com/HIbG9.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/HIbG9.png" alt="enter image description here"/></a></p>
<p>另一个问题是,在-1到26之间的值不包含E和F中的任何值的列中出现。我如何删除它们或用0填充它们,以便没有bfill或ffill在其中生成错误的条目?
(图2)
<a href="https://i.stack.imgur.com/C8kRW.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/C8kRW.png" alt="enter image description here"/></a></p>
<pre><code>import pandas as pd
import numpy as np
data = '/Users/Hanna/Desktop/Coding/Code.csv'
df_1 = pd.read_csv(data,usecols=["A",
"B",
"C",
"D",
"E",
"F",
],nrows=75)
base_list =[-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]
df_c = pd.MultiIndex.from_product([
[4000074],
["SP000796746","SP001811642"],
[201824, 201828, 201832, 201835, 201837, 201839, 201845, 201850, 201910, 201918, 201922, 201926, 201909, 201916, 201918, 201920],
base_list],
names=["A", "B", "C", "D"]).to_frame(index=False)
df_3 = pd.merge(df_c, df_1, how='outer')
</code></pre>
<p>为了更好地理解它,我将示例缩短了一点。图3显示填充时的外观,图4显示填充正确
<a href="https://i.stack.imgur.com/u3Dby.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/u3Dby.png" alt="enter image description here"/></a></p>
<p><a href="https://i.stack.imgur.com/hcnb8.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/hcnb8.png" alt="enter image description here"/></a></p>