我一直在寻找 Stack 来寻找这个问题的答案,虽然这里和这里提供的解决方案,例如,在逻辑上是合理的,但我终生无法实现它们。
我对 Python 非常陌生,虽然我知道我可以在 Excel 中快速完成此操作,但我想学习如何在 Python 中完成此操作,因此我将来不再依赖 Excel。
这是我当前的代码(为了我在学习我所写的内容时受益,这些代码分布在不同的单元格中,所以如果它们读起来有点刺耳,我深表歉意):
## SECOND STEP: IMPORT CSVs INTO DATA FRAMES
# import module
import pandas as pd
# read datset
df1 = pd.read_csv("./csvs/Data1.csv")
df2 = pd.read_csv("./csvs/Data2.csv")
## FOURTH STEP - MERGE DATA FRAMES INTO 1 DATA SET
# Merging df1 and df2 with merge function with the common column as Name
# We use a Left join as DF2 contains the additional information we need in DF1
df3 = pd.merge(df1, df2, on='Title', how="left")
## FIFTH STEP - SPLIT COLUMN 'GENRE'
pd.concat([df3[[0]], df3['Genres'].str.split(',', expand=True)], axis=1)
来自第四步的合并数据看起来像这样(带有相关列标题的基本表示例):
我确信我做错的事情是可以修复的,但我真的很感激帮助找出原因?
import pandas as pd
# generate test data
df = pd.DataFrame(
{
'A': np.random.choice(100, 3),
'B': ['a,b,c', 'x,y', 'q,r'],
'C': [1,2,5]
})
print(df)
print('------')
# concat A and C columns, with splitted column B
# store the output in new dataframe
df2 = pd.concat([df[['A','C']], df['B'].str.split(',', expand=True)], axis=1)
print(df2)
输出:
A B C
0 28 a,b,c 1
1 4 x,y 2
2 7 q,r 5
------
A C 0 1 2
0 28 1 a b c
1 4 2 x y None
2 7 5 q r None
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句