国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python pandas 列轉行操作詳解(類似hive中explode方法)

Python pandas 列轉行操作詳解(類似hive中explode方法)

2020-05-19 09:58geekingLi Python

這篇文章主要介紹了Python pandas 列轉行操作詳解(類似hive中explode方法),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

最近在工作上用到Python的pandas庫來處理excel文件,遇到列轉行的問題。找了一番資料后成功了,記錄一下。

1. 如果需要爆炸的只有一列:

?
1
2
3
4
5
6
df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]})
df
Out[1]:
 A  B
0 1 [1, 2]
1 2 [1, 2]

如果要爆炸B這一列,可以直接用explode方法(前提是你的pandas的版本要高于或等于0.25)

?
1
2
3
4
5
6
7
df.explode('B')
 
  A B
 0 1 1
 1 1 2
 2 2 1
 3 2 2

2. 如果需要爆炸的有2列及以上

?
1
2
3
4
5
6
df=pd.DataFrame({'A':[1,2],'B':[[1,2],[3,4]],'C':[[1,2],[3,4]]})
df
Out[592]:
 A  B  C
0 1 [1, 2] [1, 2]
1 2 [3, 4] [3, 4]

則可以用寫一個方法,如下代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def unnesting(df, explode):
 idx = df.index.repeat(df[explode[0]].str.len())
 df1 = pd.concat([
  pd.DataFrame({x: np.concatenate(df[x].values)}) for x in explode], axis=1)
 df1.index = idx
 
 return df1.join(df.drop(explode, 1), how='left')
 
 
unnesting(df,['B','C'])
Out[2]:
 B C A
0 1 1 1
0 2 2 1
1 3 3 2
1 4 4 2

補充知識:pandas:一列分解成多列 series.str.split(',',expand=True);pyspark 一列分解成多列

源shuju

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
question_id       id
0   17576     70391,70394
1   17576  70391,70392,70393,70394
2   17576     70391,70392
3   40430   155032,155033,155034
4   40430 155032,155033,155034,155035
5   40430   155033,155034,155035
6   40430    155032,155035
7   40430    155034,155035
8   40430    155032,155034
9   40430   155032,155034,155035
10  40430    155033,155034
11  40430    155032,155033
12  40430    155033,155035
13  40430   155032,155033,155035

pandas solution

df.join(df['id'].str.split(',',expand=True)

result

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   0  1  2  3
0 70391 70394 None None
1 70391 70392 70393 70394
2 70391 70392 None None
3 155032 155033 155034 None
4 155032 155033 155034 155035
5 155033 155034 155035 None
6 155032 155035 None None
7 155034 155035 None None
8 155032 155034 None None
9 155032 155034 155035 None
10 155033 155034 None None
11 155032 155033 None None
12 155033 155035 None None
13 155032 155033 155035 None

#注意expand=True

df.join(df['id'].str.split(',',expand=True))

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
question_id       id  0  1  2  3
0   17576     70391,70394 70391 70394 None None
1   17576  70391,70392,70393,70394 70391 70392 70393 70394
2   17576     70391,70392 70391 70392 None None
3   40430   155032,155033,155034 155032 155033 155034 None
4   40430 155032,155033,155034,155035 155032 155033 155034 155035
5   40430   155033,155034,155035 155033 155034 155035 None
6   40430    155032,155035 155032 155035 None None
7   40430    155034,155035 155034 155035 None None
8   40430    155032,155034 155032 155034 None None
9   40430   155032,155034,155035 155032 155034 155035 None
10  40430    155033,155034 155033 155034 None None
11  40430    155032,155033 155032 155033 None None
12  40430    155033,155035 155033 155035 None None
13  40430   155032,155033,155035 155032 155033 155035 None
?
1
2
3
4
5
6
pyspark solution
 tdf=df.select(F.split(df.id,',').alias('ss'),'question_id','count_num')
 tdf.sort('question_id').show()
 res=tdf.select(F.explode(tdf.ss).alias('new'),'question_id','count_num')
res.sort('question_id').show()
res.groupBy('question_id','new').sum().sort('question_id').show()

result

Python pandas 列轉行操作詳解(類似hive中explode方法)

Python pandas 列轉行操作詳解(類似hive中explode方法)

以上這篇Python pandas 列轉行操作詳解(類似hive中explode方法)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

原文鏈接:https://blog.csdn.net/m0_37773338/article/details/103754807

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色亚洲成人 | 樱桃小丸子在线观看 | 久久久综合网 | 欧美一区二区三区在线观看 | 91精品久久久久久久久久 | 精品久久久久久久久久久久久久 | 毛片一级 | 一区精品视频 | 北条麻妃99精品青青久久 | 久久精品中文字幕 | 成人免费色 | 九九综合九九 | 日韩精品一区二区三区视频播放 | 日韩欧美一区二区在线观看视频 | 不用播放器看av | 久久久久久久久久久久国产精品 | 在线观看91视频 | 午夜午夜精品一区二区三区文 | 亚洲天堂免费在线 | 亚洲天天操 | 午夜精品视频在线观看 | 国产精品美女 | 国产一区二区三区不卡在线观看 | 成人在线一区二区 | 亚洲视频免费观看 | 久久99精品国产麻豆宅宅 | 性色好看的网站 | 亚洲精品字幕 | 免费精品视频 | 三区视频 | 成人在线网址 | 国产日韩欧美一区二区 | 精品久久久网站 | 日本在线一区二区三区 | 超碰人人操 | 一区二区在线不卡 | 黄色网页在线观看 | 免费看的av | 国产美女久久久 | 青草福利 | 君岛美绪一区二区三区 |