- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
以下代码将根据索引更新库存商品数量。包含旧库存的表 dr 包含 >1000 个值。更新后的数据框 grp1 包含已售商品的数量。我想从数据帧 dr 中减去数据帧 grp1 并更新 dr。一切都很好,直到我想用 Panda 的 join 和 fillna 将 grp1 加入到 dr 中。首先,将数据类型从 int 更改为 float,不仅将 NaN 值,而且将 notnull 值替换为 0。这是索引不匹配的问题吗?
我试图使数据类型统一,但这并没有改变任何东西。在连接两个数据帧时删除 fillna 会为所有列返回 NaN。
dr has the following format (example):
druck_pseudonym lager_nr menge_im_lager
80009359 62808 1
80009360 62809 10
80009095 62810 0
80009364 62811 11
80009365 62812 10
80008572 62814 10
80009072 62816 18
80009064 62817 13
80009061 62818 2
80008725 62819 3
80008940 62820 12
dr.dtypes
lager_nr int64
menge_im_lager int64
dtype: object
and grp1 (example):
LagerArtikelNummer1 ArtMengen1
880211066 1
80211070 1
80211072 2
80211073 2
80211082 2
80211087 4
80211091 1
80211107 2
88889272 1
88889396 1
ArtMengen1 int64
dtype: object
#update list with "nicht_erledigt"
dr_update = dr.join(grp1).fillna(0)
dr_update["menge_im_lager"] = dr_update["menge_im_lager"] - dr_update["ArtMengen1"]
这将返回:
lager_nr menge_im_lager ArtMengen1
druck_pseudonym
80009185 44402 26.0 0.0
80009184 44403 2.0 0.0
80009182 44405 16.0 0.0
80008894 44406 32.0 0.0
80008115 44407 3.0 0.0
80008974 44409 16.0 0.0
80008380 44411 4.0 0.0
dr_update.dtypes
lager_nr int64
menge_im_lager float64
ArtMengen1 float64
dtype: object
最佳答案
您的索引是字符串对象。您需要将它们转换为数字。使用
dr.index = pd.to_numeric(dr.index)
grp1.index = pd.to_numeric(grp1.index)
dr.sort_index()
grp1.sort_index()
然后尝试剩下的...
您可以过滤旧库存“dr”数据框以匹配已售库存,然后减去并返回到原始过滤后的数据框。
# Filter the old stock dataframe so that you have matching index to the sold dataframe.
# Restrict just for menge_im_lager. Then subtract the sold stock
dr.loc[dr.index.isin(grp1.index), "menge_im_lager"] = (
dr.loc[dr.index.isin(grp1.index), "menge_im_lager"] - grp1["ArtMengen1"]
)
关于python - 两个数据帧的 Pandas join.fillna 将所有值替换为,而不仅仅是 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57746348/
我有一个 Pandas 数据框 City State 0 Cambridge MA 1 NaN DC 2 Boston MA
我有一个 pandas 数据框,我想用 'colname_miss' 字符串填充缺失的类别。 def FillCatMissing(df): cols = ['A','B','C']
对于初学者,这里有一些符合我的问题的人工数据: df = pd.DataFrame(np.random.randint(0, 100, size=(vsize, 10)), col
fillna可以接受一个函数吗?或者只是“backfill”、“bfill”等方法? http://pandas.pydata.org/pandas-docs/stable/generated/pan
我想在多索引数据帧上使用 fillna,并仅在特定列位于同一索引中时填充该列。下一个索引可能以 n/a 开头,因此我无法在该列上调用 fillna 。组的大小正在变化,因此我无法通过数量来限制功能。
我正在尝试替换 pandas 数据框中的 NaT。 orders.PAID_AT 0 NaT 1 NaT 2
我有一个大型数据框,其值如下: Name A B C D E F G # Coulmns Matt 1 n n n 5 n 5 # rows Jake n n 2
我有一个大约 100 万行的大型数据集,大约有 5000 个缺失坐标(我想用类别“城市”的中值填充它们,但 fillna 正在工作,如何实现它? city = ['London', 'Paris',
我正在尝试用 if 条件做一个 fillna Fimport pandas as pd df = pd.DataFrame(data={'a':[1,None,3,None],'b':[4,None,
我有如下数据框 Re_MC,Fi_MC,Fin_id,Res_id, 1,2,3,4 ,7,6,11 11,,31,32 ,,35,38 df1 = pd.read_clipboard(sep
我有一个数据框,其中有一列连续但不相邻的数字和缺失值。 我想使用 fillna 函数用前一个非缺失行的增量值填充缺失值。 这是一个简化的表格: index my_counter 0 1 1
我有以下两个数据框 df1和 df2df1: A B C D 1 Nora NaN Japan 2 Neo NaN India 3
我试图填充所有缺失值,直到数据帧结束,但无法这样做。在下面的示例中,我取了最后三个值的平均值。我的代码只填充到 2017-01-10,而我想填充到 2017-01-14。对于 1/14,我想使用 11
我有一个关于给定主题的报告数据框。每份报告都有一个分数,受试者在某些日期有分数,但在其他日期没有分数。我想创建一个新的数据框,它只包含每个主题的最新分数。下面是一个 MRE。原始数据框如下所示:
我有一个如下所示的数据框 df = pd.DataFrame({'person_id': [101,101,101,101,202,202,202],
我正在处理一个汽车销售数据集,其中包含以下列:'car'、'price'、'body'、'mileage'、'engV'、'engType'、'registration'、'year'、'model'
我想估算 df['box_office_revenue'] 的缺失值中位数由 df['release_date'] == x 指定和df['genre'] == y 。 下面是我的中值查找函数。 de
我有一个带有“元数据”列的 Pandas 数据框,该列应包含字典作为值。但是,某些值丢失并设置为 NaN。我希望这是 {}。有时,整个列都丢失了,将其初始化为 {} 也是有问题的。 用于添加列 tsp
我正在尝试在特定条件适用的情况下用 0 填充某些行。我正在尝试: df.loc[:,(df.Available == True) & (df.Intensity.isnull())].Intensit
带有 NA 的 series_A 由一个 MultiIndex (X, Y) 索引,而要填写的值在 Series_B 中,它由 X 索引。如何有效解决此类问题? 例如,这里是series_A: bar
我是一名优秀的程序员,十分优秀!