日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

android webservices 返回多行多列数据,Pandas: 如何将一列中的文本拆分为多行?

發布時間:2025/3/21 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android webservices 返回多行多列数据,Pandas: 如何将一列中的文本拆分为多行? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文和大家分享的主要是使用

Pandas

將一列中的文本拆分為多行相關內容,一起來看看吧,希望對大家

學習

Pandas

有所幫助。

在數據處理過程中,經常會遇到以下類型的數據:

在同一列中,本該分別填入多行中的數據,被填在一行里了,然而在分析的時候,需要拆分成為多行。

在上圖中,列名為

Country

”,

index

4

5

的單元格內,值為”

UK/Australia

”和”

UK/Netherland

”。

下面

,我們來

扒一扒

將含有多值的內容分拆成多行的幾種方法。

加載數據

PS

:可以通過左右滑動來查看代碼

import pandas as pd

df = pd.DataFrame({'Country':['China','US','Japan','EU','UK/Australia','UK/Netherland'],

'Number':[100,150, 120, 90, 30, 2],

'Value':[1, 2, 3, 4, 5, 6],

'label':list('abcdef')})

df

Out[2]:

Country?Number ?Value label

0 ?????????China????100 ?????1 ????a

1 ????????????US????150 ?????2 ????b

2 ?????????Japan????120 ?????3 ????c

3 ????????????EU?????90 ?????4 ????d

4 ??UK/Australia ?????30?????5 ????e

5 ?UK/Netherland ??????2?????6 ????f

1 Method-1

分為如下幾步:

將含有多值的列進行拆分,然后通過

stack()

方法進行變換,并通過

index

的設置來完成

drop()

方法從

DataFrame

中刪除含有多值的列

然后用

join()

方法來合并

df.drop('Country', axis=1).join(df['Country'].str.split('/',expand=True).stack().reset_index(level=1, drop=True).rename('Country'))

Out[3]:

Number ?Value label ????Country

0 ????100 ?????1????a ??????China

1 ????150 ?????2????b ?????????US

2 ????120 ?????3????c ??????Japan

3 ?????90 ?????4????d ?????????EU

4 ?????30 ?????5????e ?????????UK

4 ?????30 ?????5????e ??Australia

5 ??????2 ?????6????f ?????????UK

5 ??????2 ?????6????f ?Netherland

過程分步介紹

df['Country'].str.split('/', expand=True).stack()

Out[4]:

0 ?0 ????????China

1 ?0 ???????????US

2 ?0 ????????Japan

3 ?0 ???????????EU

4 ?0 ???????????UK

1 ????Australia

5 ?0 ???????????UK

1 ???Netherland

dtype: object

df['Country'].str.split('/', expand=True).stack().reset_index(level=1,drop=True)

Out[5]:

0 ????????China

1 ???????????US

2 ????????Japan

3 ???????????EU

4 ???????????UK

4 ????Australia

5 ???????????UK

5 ???Netherland

dtype: object

df['Country'].str.split('/', expand=True).stack().reset_index(level=1,drop=True).rename('Country')

Out[6]:

0 ????????China

1 ???????????US

2 ????????Japan

3 ???????????EU

4 ???????????UK

4 ????Australia

5 ???????????UK

5 ???Netherland

Name: Country, dtype: object

df.drop('Country', axis=1)

Out[7]:

Number ?Value label

0 ????100 ?????1????a

1 ????150 ?????2????b

2 ????120 ?????3????c

3 ?????90 ?????4????d

4 ?????30 ?????5????e

5 ??????2 ?????6????f

2 Method-2

該方法的思路跟

Method-1

基本是一樣的,只是在具體的細節方面有些差異。代碼如下:

df['Country'].str.split('/', expand=True).stack().reset_index(level=0).set_index('level_0').rename(columns={0:'Country'}).join(df.drop('Country',axis=1))

Out[8]:

Country?Number ?Value label

0 ??????China????100 ?????1 ????a

1 ?????????US????150 ?????2 ????b

2 ??????Japan????120 ?????3 ????c

3 ?????????EU?????90 ?????4 ????d

4 ?????????UK?????30 ?????5 ????e

4 ??Australia ?????30?????5 ????e

5 ?????????UK??????2 ?????6 ????f

5 ?Netherland ??????2?????6 ????f

過程分步介紹如下:

df['Country'].str.split('/', expand=True).stack().reset_index(level=0)

Out[9]:

level_0 ??????????0

0 ???????0??????China

0 ???????1?????????US

0 ???????2??????Japan

0 ???????3?????????EU

0 ???????4?????????UK

1 ???????4??Australia

0 ???????5?????????UK

1 ???????5?Netherland

df['Country'].str.split('/', expand=True).stack().reset_index(level=0).set_index('level_0')

Out[10]:

level_0

0 ????????????China

1 ???????????????US

2 ????????????Japan

3 ???????????????EU

4 ???????????????UK

4 ????????Australia

5 ???????????????UK

5 ???????Netherland

df['Country'].str.split('/', expand=True).stack().reset_index(level=0).set_index('level_0').rename(columns={0:'Country'})

Out[11]:

Country

level_0

0 ????????????China

1 ???????????????US

2 ????????????Japan

3 ???????????????EU

4 ???????????????UK

4 ????????Australia

5 ???????????????UK

5 ???????Netherland

df.drop('Country', axis=1)

Out[12]:

Number ?Value label

0 ????100 ?????1????a

1 ????150 ?????2????b

2 ????120 ?????3????c

3 ?????90 ?????4????d

4 ?????30 ?????5????e

5 ??????2 ?????6????f

3

閑談

當然,將某列中含有多值的單元拆分成多行,還有其他方法,各位小伙伴們可以研究下

~~

來源:博客園

贊 | 0

總結

以上是生活随笔為你收集整理的android webservices 返回多行多列数据,Pandas: 如何将一列中的文本拆分为多行?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。