首页 > 解决方案 > 如何使用python拆分Dataframe中的值

问题描述

我的数据框:

df
Object      quantity
A             3
B             4
C             10
D             11

我想要的结果:

df
Object      quantity
A             3
B             4
C             4
C             4
C             2
D             4
D             4
D             3

我的目标是拆分存储在 column2“数量”中的值,使其应为 4 或小于 4。

我可以使用哪种方法来解决这个问题?任何建议将不胜感激。

标签: pythonpandas

解决方案


这可行,但就熊猫而言,它既不漂亮也不快:

df = pd.DataFrame({'idx': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
                   'quantity': [1., 2., 3., 4., 5., 6., 7.]})

df['factor'] = df.quantity // 4.
df['modulo'] = df.quantity % 4.

res = pd.DataFrame({'idx': [], 'quantity': []})

for idx, row in df.iterrows():
    for idxx in range(int(row.factor)):
        res = res.append({'idx': row.idx, 'quantity': 4.},
                         ignore_index=True)
    if row.modulo > 0:
        res = res.append({'idx': row.idx, 'quantity': row.modulo},
                         ignore_index=True)

In [24]: df
Out[24]: 
  idx  quantity
0   A       1.0
1   B       2.0
2   C       3.0
3   D       4.0
4   E       5.0
5   F       6.0
6   G       7.0

In [22]: res
Out[22]: 
  idx  quantity
0   A       1.0
1   B       2.0
2   C       3.0
3   D       4.0
4   E       4.0
5   E       1.0
6   F       4.0
7   F       2.0
8   G       4.0
9   G       3.0

推荐阅读