gpt4 book ai didi

python - 用一行中的所有值拆分数据框

转载 作者:行者123 更新时间:2023-12-03 15:23:51 25 4
gpt4 key购买 nike

我得到了以下动态创建的数据帧,但将所有相关值保存到一行中:
df

+----------------+----------------+----------------+----------------+
| 1 | 2 | 3 | 4 |
+----------------+----------------+----------------+----------------+
| a1, b1, c1, d1 | a2, b2, c2, d2 | a3, b3, c3, d3 | a4, b4, c4, d4 |
+----------------+----------------+----------------+----------------+
我需要在一行中包含所有 a_i 值,所有 b 等(列已定义且为常量):
+----+----+----+----+
| 1 | 2 | 3 | 4 |
+----+----+----+----+
| a1 | a2 | a3 | a4 |
| b1 | b2 | b3 | b4 |
| c1 | c2 | c3 | c4 |
| d1 | d2 | d3 | d4 |
+----+----+----+----+
由于 中不同字母的数量的情况df 因情况而异,我需要一个动态解决方案来转换 df 变成上面的表格。

最佳答案

更新 Pandas 1.3.0 爆炸接受列标题列表。

df.explode(df.columns.tolist())
输出:
    1   2   3   4
0 a1 a2 a3 a4
0 b1 b2 b3 b4
0 c1 c2 c3 c4
0 d1 d2 d3 d4

鉴于, df 具有此结构:
df = pd.DataFrame({1:[np.array('a1 b1 c1 d1'.split(' '))],
2:[np.array('a2 b2 c2 d2'.split(' '))],
3:[np.array('a3 b3 c3 d3'.split(' '))],
4:[np.array('a4 b4 c4 d4'.split(' '))]})
输入数据框:
                  1                 2                 3                 4
0 [a1, b1, c1, d1] [a2, b2, c2, d2] [a3, b3, c3, d3] [a4, b4, c4, d4]
您可以使用 pd.Series.explode:
df.apply(pd.Series.explode)
输出:
    1   2   3   4
0 a1 a2 a3 a4
0 b1 b2 b3 b4
0 c1 c2 c3 c4
0 d1 d2 d3 d4

关于python - 用一行中的所有值拆分数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64407347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com