use*_*057 5 python dataframe python-3.x pandas pandas-groupby
我有一个df这样的数据框,
Name Net Quantity
0 Auto 1010 10
1 NaN NaN 12
2 Rtal 4145 18
3 NaN NaN 14
4 Indl 6223 16
5 NaN 7222 18
Run Code Online (Sandbox Code Playgroud)
我的输出数据框应该是这样的,
Name Net Quantity
0 Auto 1010 10,12
1 Rtal 4145 18,14
2 Indl 6223,7222 16,18
Run Code Online (Sandbox Code Playgroud)
正如您从上面的数据框中看到的,如果奇数(索引)中存在任何值,我想将值与偶数(索引)行组合,以便我可以获得输出。
我尝试了以下方法来提取奇数值,
df.iloc[1::2, :]
Run Code Online (Sandbox Code Playgroud)
这给了我以下内容,
Name Net Quantity
1 NaN NaN 12
3 NaN NaN 14
5 NaN 7222.0 18
Run Code Online (Sandbox Code Playgroud)
之后,我现在不知道如何将这些值添加到我的df. 除此之外,我不确定我的方法是否正确。如果有人可以提供建议/帮助,我将不胜感激。
如果您对“Net”中的浮点数感到满意,则可以使用groupbyand agg:
df.groupby(df.index // 2).agg(lambda x: x.dropna().astype(str).str.cat(sep=','))
Name Net Quantity
0 Auto 1010.0 10,12
1 Rtal 4145.0 18,14
2 Indl 6223.0,7222.0 16,18
Run Code Online (Sandbox Code Playgroud)
为了处理浮动,解决方案变得有点复杂;如果可能的话,您可以使用ffill并尝试向下转型。
df.groupby(df.index // 2).agg(
lambda x: ','.join(x.ffill(downcast='infer').astype(str).unique()))
Name Net Quantity
0 Auto 1010 10,12
1 Rtal 4145 18,14
2 Indl 6223,7222 16,18
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6308 次 |
| 最近记录: |