如何使用 pandas 将 csv 文件读入数据框
How to read csv file into dataframe using pandas
我刚得到一个 csv 文件,我想使用 pandas 将数据集加载为数据框。但是,我对这种数据格式有点困惑。
以下是两行的数据示例:
Name=John, Gender=M, BloodType=A, Location=New York, Age=18
Name=Mary, Gender=F, BloodType=AB, Location=Seatle, Age=30
如何将此数据集加载到包含列(姓名、性别、血型等)的数据框中?
如果有人给我提示,我将不胜感激!
使用pandas read_csv方法读取csv文件。
这是一个示例程序,您可以如何执行此操作:
import pandas as pd
data = pd.read_csv("path_to_csv_file")
print(data)
首先使用 read_csv
和 header=None
:
import pandas as pd
temp=u"""Name=John,Gender=M,BloodType=A,Location=New York,Age=18
Name=Mary,Gender=F,BloodType=AB,Location=Seatle,Age=30"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), header=None)
print (df)
0 1 2 3 4
0 Name=John Gender=M BloodType=A Location=New York Age=18
1 Name=Mary Gender=F BloodType=AB Location=Seatle Age=30
然后 DataFrame.apply
with Series.str.split
和 select 第二个列表,最后更改列名称:
df1 = df.apply(lambda x: x.str.split('=').str[1])
df1.columns = df.iloc[0].str.split('=').str[0].rename(None)
#if necessary
df1['Age'] = df1['Age'].astype(int)
print (df1)
Name Gender BloodType Location Age
0 John M A New York 18
1 Mary F AB Seatle 30
我刚得到一个 csv 文件,我想使用 pandas 将数据集加载为数据框。但是,我对这种数据格式有点困惑。
以下是两行的数据示例:
Name=John, Gender=M, BloodType=A, Location=New York, Age=18
Name=Mary, Gender=F, BloodType=AB, Location=Seatle, Age=30
如何将此数据集加载到包含列(姓名、性别、血型等)的数据框中?
如果有人给我提示,我将不胜感激!
使用pandas read_csv方法读取csv文件。 这是一个示例程序,您可以如何执行此操作:
import pandas as pd
data = pd.read_csv("path_to_csv_file")
print(data)
首先使用 read_csv
和 header=None
:
import pandas as pd
temp=u"""Name=John,Gender=M,BloodType=A,Location=New York,Age=18
Name=Mary,Gender=F,BloodType=AB,Location=Seatle,Age=30"""
#after testing replace 'pd.compat.StringIO(temp)' to 'filename.csv'
df = pd.read_csv(pd.compat.StringIO(temp), header=None)
print (df)
0 1 2 3 4
0 Name=John Gender=M BloodType=A Location=New York Age=18
1 Name=Mary Gender=F BloodType=AB Location=Seatle Age=30
然后 DataFrame.apply
with Series.str.split
和 select 第二个列表,最后更改列名称:
df1 = df.apply(lambda x: x.str.split('=').str[1])
df1.columns = df.iloc[0].str.split('=').str[0].rename(None)
#if necessary
df1['Age'] = df1['Age'].astype(int)
print (df1)
Name Gender BloodType Location Age
0 John M A New York 18
1 Mary F AB Seatle 30