Python 使用给定列表对CSV文件进行排序
我有一个包含2列的csv文件和一个随机包含第一列所有值的列表。我想对csv文件进行排序,就像列表中包含值一样 CSV文件:Python 使用给定列表对CSV文件进行排序,python,pandas,csv,Python,Pandas,Csv,我有一个包含2列的csv文件和一个随机包含第一列所有值的列表。我想对csv文件进行排序,就像列表中包含值一样 CSV文件: Name age ---- ---- alice 17 bob 18 carol 19 Name age ---- ---- bob 18 carol 19 alice 17 列表 name = ['bob','carol','alice'] 预期输出: Name
Name age
---- ----
alice 17
bob 18
carol 19
Name age
---- ----
bob 18
carol 19
alice 17
列表
name = ['bob','carol','alice']
预期输出:
Name age
---- ----
alice 17
bob 18
carol 19
Name age
---- ----
bob 18
carol 19
alice 17
如何使用python模块来实现它 这里是python解决方案。如果确实需要,您可以在padnas中使用输出文件
导入csv
name=['bob'、'carol'、'alice']
将open('in.csv')作为f_-in,将open('out.csv','w')作为f_-out:
行={n:a代表n,csv.reader中的a(f_-in,分隔符=',')}
writer=csv.writer(f_out)
对于名称中的n:
writer.writerow([n,行[n]]))
这是python解决方案。如果确实需要,您可以在padnas中使用输出文件
导入csv
name=['bob'、'carol'、'alice']
将open('in.csv')作为f_-in,将open('out.csv','w')作为f_-out:
行={n:a代表n,csv.reader中的a(f_-in,分隔符=',')}
writer=csv.writer(f_out)
对于名称中的n:
writer.writerow([n,行[n]]))
您可以将列表转换为一个系列(指定与要排序的列相同的名称),然后合并。
合并应该是内部的、左侧的或外部的,这取决于列表和文件的重叠以及您希望如何处理差异
import pandas as pd
df_ages = pd.DataFrame([('alice', 17), ('bob', 18), ('carol', 19)], columns=['Name', 'age'])
name = ['bob','carol','alice']
name = pd.Series(name, name='Name')
df_ages = pd.merge(name, df_ages, how='outer')
结果:
Name age
0 bob 18
1 carol 19
2 alice 17
您可以将列表转换为一个系列(为其指定与要排序的列相同的名称),然后合并。 合并应该是内部的、左侧的或外部的,这取决于列表和文件的重叠以及您希望如何处理差异
import pandas as pd
df_ages = pd.DataFrame([('alice', 17), ('bob', 18), ('carol', 19)], columns=['Name', 'age'])
name = ['bob','carol','alice']
name = pd.Series(name, name='Name')
df_ages = pd.merge(name, df_ages, how='outer')
结果:
Name age
0 bob 18
1 carol 19
2 alice 17