簡體   English   中英

CSV File-Pandas dataFrame 列分離

[英]CSV File-Pandas dataFrame column separation

我有這樣的數據集, 在此處輸入圖片說明

如您所見,第 3 列(任期開始時)和第 4 列(任期結束時)已合並,我該如何將它們分開? 提前致謝。

如果可能,按大寫拆分:

data = [{'Age atend of presidency': '65 years, 10 daysMar 4, 1797'}, 
        {'Age atend of presidency': '65 years, 10 daysMar 4, 1797'}
         ,{'Age atend of presidency': '65 years, 10 daysMar 4, 1797'}]

df = pd.DataFrame(data)

df[['age1','end2']] = df['Age atend of presidency'].str.split("([A-Z][^A-Z]*)", expand=True).iloc[:, :-1]
print (df)
            Age atend of presidency               age1         end2
0  65 years, 10 daysMar 4, 1797  65 years, 10 days  Mar 4, 1797
1  65 years, 10 daysMar 4, 1797  65 years, 10 days  Mar 4, 1797
2  65 years, 10 daysMar 4, 1797  65 years, 10 days  Mar 4, 1797

或者您可以按days拆分:

df[['age1','end2']] = df['Age atend of presidency'].str.split("days", expand=True)
df['age1'] += 'days'
print (df)
        Age atend of presidency               age1         end2
0  65 years, 10 daysMar 4, 1797  65 years, 10 days  Mar 4, 1797
1  65 years, 10 daysMar 4, 1797  65 years, 10 days  Mar 4, 1797
2  65 years, 10 daysMar 4, 1797  65 years, 10 days  Mar 4, 1797

或者:

df[['age1','a', 'end2']] = df['Age atend of presidency'].str.split("(days)", expand=True)
df['age1'] += df.pop('a')

如果是 STR,則可以使用 X.split(',')。 例如:

 df['Age atend of presidency'].apply(lambda x: x.split(','))

如果不是STR

df['Age atend of presidency'].apply(lambda x: str(x).split(','))

或者

df['Age'] = df['Age atend of presidency'].apply(lambda x: x.split(',')[0])
df['days'] = df['Age atend of presidency'].apply(lambda x: x.split(',')[1])
df['date'] = df['Age atend of presidency'].apply(lambda x: x.split(',')[2])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM