我有一个.csv文件,格式如下:
Cash
Serial,Date,Balance
1,2021-03-05,34
2,2021-05-04,54
Credit
Serial,Date,Balance
18,2021-03-05,898
21,2021-04-01,654
Savings
Serial,Date,Balance
3,2021-03-18,19384
34,2021-12-04,472
我想把它加载到一个pandas DataFrame中,结构如下
Serial,Asset,Date,Balance
1,Cash,2021-03-05,34
2,Cash,2021-05-04,54
18,Credit,2021-03-05,898
21,Credit,2021-04-01,654
3,Savings,2021-03-18,19384
34,Savings,2021-12-04,472
我已经可以使用以下代码将文件加载到DataFrame中:
import numpy as np
FILE = r"/myfile.csv"
with open(FILE, 'r') as temp_f:
col_count = [ len(l.split(",")) for l in temp_f.readlines() ]
column_names = [i for i in range(0, max(col_count))]
df = pd.read_csv(FILE, header=None, delimiter=",", names=column_names)
df['Asset'] = np.nan
print(df)
但我现在卡住了如何删除行与“序列,日期,余额”和填写行在资产列与相应的条目(“现金”,“信贷”等。)。欢迎提出任何建议。
4条答案
按热度按时间dddzy1tm1#
CSV应该有一个标题,但这将按原样读取它:
输出:
output.csv:
balp4ylt2#
我有一个.csv文件,格式如下
这绝对不是一个CSV文件。这是三个这样的文件:
以这种方式将它们存储在文件系统中。
读入三个单独的 Dataframe 。然后以通常的方式对它们进行报告,以生成单个组合 Dataframe 。提示:在每个小数据框中添加一个恒定的文本列“cash”、“credit”或“savings”,这将简化您的任务。
fcg9iug33#
您可以用途:
输出:
tuwxkamq4#
我将使用正则表达式
re.finditer
来迭代块,io.StringIO
+pandas.read_csv
来加载每个块,concat
将它们组合成一个DataFrame:输出:
regex demo