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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python如何输出两列数据_Python-如何将一列分为两列?

發布時間:2025/3/15 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python如何输出两列数据_Python-如何将一列分为两列? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

小編典典

對于以下簡單情況:

我有一個帶有定界符的文本列,我想要兩列

最簡單的解決方案是:

df['A'], df['B'] = df['AB'].str.split(' ', 1).str

或者,你可以使用以下方法自動為拆分的每個條目創建一個帶有一列的DataFrame:

df['AB'].str.split(' ', 1, expand=True)

expand=True如果字符串的分割數不一致,并且要None替換缺失的值,則必須使用。

請注意,無論哪種情況,.tolist()都不需要該方法。都不是zip()。

詳細地:

安迪·海登(Andy Hayden)的解決方案最能證明該str.extract()方法的強大功能。

但是對于在已知分隔符上的簡單拆分(例如,用破折號拆分或通過空格拆分),該.str.split()方法就足夠了1。它對字符串的一列(系列)進行操作,并返回列表的一列(系列):

>>> import pandas as pd

>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2']})

>>> df

AB

0 A1-B1

1 A2-B2

>>> df['AB_split'] = df['AB'].str.split('-')

>>> df

AB AB_split

0 A1-B1 [A1, B1]

1 A2-B2 [A2, B2]

1:如果不確定.str.split()do 的前兩個參數是什么,我建議為該方法的純Python版本使用docs 。

但是你如何去做:

包含兩個元素的列表的列

至:

兩列,每列包含列表的相應元素?

好吧,我們需要仔細看看.str列的屬性。

這是一個神奇的對象,用于收集將列中的每個元素視為字符串的方法,然后在每個元素中盡可能有效地應用相應的方法:

>>> upper_lower_df = pd.DataFrame({"U": ["A", "B", "C"]})

>>> upper_lower_df

U

0 A

1 B

2 C

>>> upper_lower_df["L"] = upper_lower_df["U"].str.lower()

>>> upper_lower_df

U L

0 A a

1 B b

2 C c

但是它還有一個“索引”接口,用于通過其索引獲取字符串的每個元素:

>>> df['AB'].str[0]

0 A

1 A

Name: AB, dtype: object

>>> df['AB'].str[1]

0 1

1 2

Name: AB, dtype: object

當然,.str只要可以對其建立索引,則此索引接口并不真正在乎它所索引的每個元素是否實際上是字符串,因此:

>>> df['AB'].str.split('-', 1).str[0]

0 A1

1 A2

Name: AB, dtype: object

>>> df['AB'].str.split('-', 1).str[1]

0 B1

1 B2

Name: AB, dtype: object

然后,只需利用Python元組對可迭代對象進行拆包即可

>>> df['A'], df['B'] = df['AB'].str.split('-', 1).str

>>> df

AB AB_split A B

0 A1-B1 [A1, B1] A1 B1

1 A2-B2 [A2, B2] A2 B2

當然,從拆分一列字符串中獲取一個DataFrame非常有用,以至于該.str.split()方法可以通過expand=True參數為你做到這一點:

>>> df['AB'].str.split('-', 1, expand=True)

0 1

0 A1 B1

1 A2 B2

因此,完成我們想要的工作的另一種方法是:

>>> df = df[['AB']]

>>> df

AB

0 A1-B1

1 A2-B2

>>> df.join(df['AB'].str.split('-', 1, expand=True).rename(columns={0:'A', 1:'B'}))

AB A B

0 A1-B1 A1 B1

1 A2-B2 A2 B2

該expand=True版本雖然較長,但與元組拆包方法相比具有明顯的優勢。元組解壓縮不能很好地處理不同長度的拆分:

>>> df = pd.DataFrame({'AB': ['A1-B1', 'A2-B2', 'A3-B3-C3']})

>>> df

AB

0 A1-B1

1 A2-B2

2 A3-B3-C3

>>> df['A'], df['B'], df['C'] = df['AB'].str.split('-')

Traceback (most recent call last):

[...]

ValueError: Length of values does not match length of index

>>>

但是expand=True通過放置None沒有足夠“拆分”的列來很好地處理它:

>>> df.join(

... df['AB'].str.split('-', expand=True).rename(

... columns={0:'A', 1:'B', 2:'C'}

... )

... )

AB A B C

0 A1-B1 A1 B1 None

1 A2-B2 A2 B2 None

2 A3-B3-C3 A3 B3 C3

2020-02-11

總結

以上是生活随笔為你收集整理的python如何输出两列数据_Python-如何将一列分为两列?的全部內容,希望文章能夠幫你解決所遇到的問題。

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